Maven基础命令
1、mvn compile (编译项目源代码,生成target/)
2、mvn clean (删除项目下的target/)
[INFO] --- maven-clean-plugin:3.1.0:clean (default-clean) @ operation-tdp-service ---
[INFO] Deleting D:\code\java\operation_platform\operation-tdp\operation-tdp-service\target
3、mvn test (运行测试类)
4、mvn package (打包项目jar包/war包)
5、mvn install (安装项目打包的jar包到本地仓库repository中)
6、mvn deploy (上传本地jar包到私服/远端仓库)
7、mvn site (生成site站点文件)
8、mvn test-compile (编译测试代码)
9、mvn -Dtest package (打包,跳过测试)
10、mvn source:jar (源码打包成jar包,只在本地工程目录下)
- 方式一:在单个pom文件中对插件进行配置
<build>
<plugins>
<plugin>
<!--配置插件的坐标 -->
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<version>2.2</version>
<!-- 配置插件执行的时机,这里指定的是在完成package之后 -->
<executions>
<execution>
<phase>
package
</phase>
<goals>
<goal>jar-no-fork</goal>
</goals>
</execution>
</executions>
<!--配置
outputDirectory:指定打成jar包存放的位置,我们可以指定绝对路径,默认是target文件夹中
finalName:打成jar的名字为finalName的值-source.jar
attach:指定是否关联到源代码的 artifact (一般为false)
-->
<configuration>
<outputDirectory>D:/user-core/resource</outputDirectory>
<finalName>user-core</finalName>
<attach>false</attach>
</configuration>
</plugin>
</plugins>
</build>
- 方式二:通过pom继承的方式在多个pom文件中对插件进行配置
<!-- 在父pom中配置插件的管理 -->
<build>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<version>2.2</version>
<executions>
<execution>
<phase>
package
</phase>
<goals>
<goal>jar-no-fork</goal>
</goals>
</execution>
</executions>
<!--
<configuration>
<outputDirectory>D:/user-core/resource</outputDirectory>
<finalName>user-core</finalName>
<attach>false</attach>
</configuration>
-->
</plugin>
</plugins>
</pluginManagement>
</build>
在子pom文件中配置如下:
<!-- 从父类中继承的插件 -->
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
</plugin>
</plugins>
</build>
通过引入以上source-plugin,可以执行一下源代码打包命令:
(1)mvn source:jar 只打包源代码成jar包在指定文件目录下
(2)mvn package 不仅打包源代码jar包,还打包正常class的jar包
(3)mvn install 打包源代码jar,打包class文件的jar,并且安装源代码jar和class的jar包到本地仓库
(4)mvn deploy 打包源代码jar,打包class文件的jar,并且发布上述jar包到私服或者远程仓库上
- maven跳过单元测试maven.test.skip和skipTests的区别
-DskipTests,不执行测试用例,但会编译测试用例类生成相应的class文件至target/test-classes下
-Dmaven.test.skip=true,不执行测试用例,也不编译测试用例类
1、使用maven.test.skip,不但跳过测试用例的执行,也跳过测试用例的编译
mvn package -Dmaven.test.skip=true
也可以在pom文件中配置
<plugin>
<groupId>org.apache.maven.plugin</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.1</version>
<configuration>
<skip>true</skip>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.5</version>
<configuration>
<skip>true</skip>
</configuration>
</plugin>
2、使用 mvn package -DskipTests 跳过单元测试,但是会继续编译;如果没时间修改单元测试的bug,或者单元测试编译错误。使用上面的,不要用这个
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.5</version>
<configuration>
<skipTests>true</skipTests>
</configuration>
</plugin>
默认idea的跳过测试采用的是第二种,所以仍然会编译代码,如果想不执行测试用例,也不编译测试用例类,那么必须采用第一种方式在pom中加上skip为true,这样才能跳过编译