Maven学习笔记(三)Maven使用入门

小灰灰 2021-12-15 04:45 602阅读 0赞

目录

3.1 编写POM

3.2 编写主代码

3.3 编写测试代码

3.4 打包和运行

3.5 使用Archetype生成骨架

3.6 m2eclipse简单使用

3.6.1 导入Maven项目

3.6.2 创建Maven项目

3.6.3 运行mvn命令


3.1 编写POM

就像make的makefile,ant的build.xml一样,Maven项目的核心是pom.xml

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM5MzI2NDcy_size_16_color_FFFFFF_t_70

3.2 编写主代码

项目主代码会打包到最终的构件中(如jar),测试代码不会。

在绝大多数情况下,项目主码放到src/main/java目录下,无须额外的配置,Maven会自动搜寻还目录找到项目主代码。一般来说,项目中java类的包都应该基于项目的groupId和artifactId。

  1. package com.wangwenxuan.maven.hh;
  2. /**
  3. * Hello world!
  4. *
  5. */
  6. public class App
  7. {
  8. public static void main( String[] args )
  9. {
  10. System.out.println( "Hello World!" );
  11. }
  12. }

命令行进入项目目录,执行:mvn clean compile

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM5MzI2NDcy_size_16_color_FFFFFF_t_70 1

clean删除target文件。compile将主代码编译到target/classes目录。

注意:是clean不是clear,真心错了800次,还找不出原因。

3.3 编写测试代码

" class="reference-link">watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM5MzI2NDcy_size_16_color_FFFFFF_t_70 2

Maven可以自动去下载junit-4.7.jar.自动访问中央长裤,下载需要的文件。

  1. package com.wangwenxuan.maven.hh;
  2. import junit.framework.Test;
  3. import junit.framework.TestCase;
  4. import junit.framework.TestSuite;
  5. /**
  6. * Unit test for simple App.
  7. */
  8. public class AppTest
  9. extends TestCase
  10. {
  11. /**
  12. * Create the test case
  13. *
  14. * @param testName name of the test case
  15. */
  16. public AppTest( String testName )
  17. {
  18. super( testName );
  19. }
  20. /**
  21. * @return the suite of tests being tested
  22. */
  23. public static Test suite()
  24. {
  25. return new TestSuite( AppTest.class );
  26. }
  27. /**
  28. * Rigourous Test :-)
  29. */
  30. public void testApp()
  31. {
  32. assertTrue( true );
  33. }
  34. }

典型的单元测试:1.准备测试类和数据 2.执行要测试的行为 3.检查结果

在JUnit3中,所有要执行的测试test开头,JUnit四中,需要执行的测试方法都应该以@Test进行标注。

测试用例编写结束后可以调用Maven测试:mvn clean test.

" class="reference-link">watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM5MzI2NDcy_size_16_color_FFFFFF_t_70 3

由于历史原因,Maven的核心插件之一——compiler插件默认只支持编译Java1.3,因此需要Java1.3以上的功能时需要配置该插件使其支持Java5

" class="reference-link">watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM5MzI2NDcy_size_16_color_FFFFFF_t_70 4

3.4 打包和运行

pom中没有指定打包类型时默认jar类型。使用命令:mvn clean package打包。

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM5MzI2NDcy_size_16_color_FFFFFF_t_70 5

maven会在打包之前执行编译,测试等操作。命令成功后在target/输出目录中出现jar包。如果想用就可以将jar包复制到其它项目的classpath中使用。但是,如何让其它Maven项目直接引用这个jar?可以将jar存到本地仓库中。

执行一个安装的步骤:mvn clean install

#

3.5 使用Archetype生成骨架

命令行:

运行mvn archetype:generate

跳出很多信息,挑选想要的骨架(默认quickstart),然后输入下面的信息;

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM5MzI2NDcy_size_16_color_FFFFFF_t_70 6

这就成功建成一个maven项目了。

长这个亚子

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM5MzI2NDcy_size_16_color_FFFFFF_t_70 7

" class="reference-link">watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM5MzI2NDcy_size_16_color_FFFFFF_t_70 8

" class="reference-link">watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM5MzI2NDcy_size_16_color_FFFFFF_t_70 9

pom.xml:

  1. <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  2. xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  3. <modelVersion>4.0.0</modelVersion>
  4. <groupId>com.wangwenxuan.maven</groupId>
  5. <artifactId>hh</artifactId>
  6. <version>0.0.1-SNAPSHOT</version>
  7. <packaging>jar</packaging>
  8. <name>hh</name>
  9. <url>http://maven.apache.org</url>
  10. <properties>
  11. <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  12. </properties>
  13. <dependencies>
  14. <dependency>
  15. <groupId>junit</groupId>
  16. <artifactId>junit</artifactId>
  17. <version>3.8.1</version>
  18. <scope>test</scope>
  19. </dependency>
  20. </dependencies>
  21. <build>
  22. <plugins>
  23. <plugin>
  24. <groupId>org.apache.maven.plugins</groupId>
  25. <artifactId>maven-shade-plugin</artifactId>
  26. <version>1.2.1</version>
  27. <executions>
  28. <execution>
  29. <phase>package</phase>
  30. <goals>
  31. <goal>shade</goal>
  32. </goals>
  33. <configuration>
  34. <transformers>
  35. <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
  36. <mainClass>com.wangwenxuan.maven.hh.App</mainClass>
  37. </transformer>
  38. </transformers>
  39. </configuration>
  40. </execution>
  41. </executions>
  42. </plugin>
  43. </plugins>
  44. </build>
  45. </project>

" class="reference-link">20190704211846598.png

#

3.6 m2eclipse简单使用

3.6.1 导入Maven项目

file-import

3.6.2 创建Maven项目

file-new-orther-Maven-MavenProject-默认选项-添基本信息-finish

3.6.3 运行mvn命令

20190704204256583.png

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM5MzI2NDcy_size_16_color_FFFFFF_t_70 10

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM5MzI2NDcy_size_16_color_FFFFFF_t_70 11

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM5MzI2NDcy_size_16_color_FFFFFF_t_70 12

问题:compile不好使。好像是eclipse运行在jre而不是jdk上的问题。

发表评论

表情:
评论列表 (有 0 条评论,602人围观)

还没有评论,来说两句吧...

相关阅读