Maven常用命令、插件和遇到的坑
continuous updating…
Maven技巧部分
-
定义
mvn install
生成的文件名称,如果是war
包,这里的打包名称会是项目访问的根路径(注意,没使用tomcat
插件时)<build> <finalName>打包名称</finalName> </build>
mvn clean install -Dmaven.test.skip=true
进入工程pom.xml
所在目录,shift
+ 鼠标右键,选择“在此处打开命令窗口”,执行命令mvn compile
进入工程pom.xml
所在目录,shift
+ 鼠标右键,选择“在此处打开命令窗口”,执行命令mvn dependency:copy-dependencies -DoutputDirectory=./lib
将Maven
仓库中的所有jar
文件导出到当前目录的lib
文件夹中,lib
不存在时自动生成mvn dependency:tree
在工程pom.xml
所在目录,shift
+ 鼠标右键,选择“在此处打开命令窗口”,执行命令,查看工程是否存在jar
包冲突mvn install:install-file -Dfile=E:\alipay-trade-sdk.jar -DgroupId=alipay -DartifactId=alipay-trade-sdk -Dversion=1.0 -Dpackaging=jar
将外部jar
导入本地Maven
仓库将单元测试放在
src/main/test
目录下,否则执行maven install
时会报错,报错的原因可能是你将单元测试的类放在了src/main/java
目录下,而你的junit
依赖范围是test
,即在maven
编译src/main/java
下的类时,junit
的jar
包不在当前的classpath
下,因此会报错。注意:Maven
是约定大于配置,也就是说Maven
约定单元测试要放在src/main/test
目录下。当然,你可以更改junit
的依赖范围,那么你的单元测试可以放在src/main/java
下。
Maven插件部分
-
maven-surefire-plugin
单元测试的插件
maven-compiler-plugin
编译插件-
maven-jar-plugin
将工程打成jar
包时额外操作的插件MANIFEST.MF
的内容:对于
Springboot
项目需要的插件,此插件中已经包含了多个插件,例如:maven-jar-plugin
、maven-war-plugin
等 -
maven-assembly-plugin
套件插件,详见下图,自己可以试一下,看看生成的文件中有什么内容<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-assembly-plugin</artifactId> <configuration> <descriptorRefs> <descriptorRef>jar-with-dependencies</descriptorRef> </descriptorRefs> <archive> <manifest> <mainClass>com.p7.framework.zk.TestZk</mainClass> </manifest> </archive> </configuration> <executions> <execution> <id>make-assembly</id> <phase>package</phase> <goals> <goal>single</goal> </goals> </execution> </executions> </plugin>
-
maven-enforcer-plugin
对项目环境进行检查,比如要求项目成员使用JDK1.7
及以上版本进行开发<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-enforcer-plugin</artifactId> <version>1.4</version> <executions> <execution> <id>enforce</id> <configuration> <rules> <!-- 所有版本必须一致 --> <DependencyConvergence> <uniqueVersions>true</uniqueVersions> </DependencyConvergence> <!-- 必须使用JDK 1.7及以上版本 --> <requireJavaVersion> <version>[1.7,)</version> </requireJavaVersion> </rules> </configuration> <goals> <goal>enforce</goal> </goals> </execution> </executions> </plugin>
maven-resources-plugin
资源过滤插件,注意直接在IDE
中运行项目,不会过滤资源,只有打包时才会过滤
到底何为资源过滤插件?例如工程中有jdbc.properties
配置文件,pom.xml
中配置了测试的profile
和正式环境的profile
,我们可通过mvn -Ppro install
指定**的配置profile
来替换jdbc.properties
中的参数。下面是根据在pom
中配置资源,当然,你可以在setting.xml
中配置一些属性。
上一篇: 前端开发交流群---期待你的加入
下一篇: 同时曹魏将领夏侯惇和曹仁,曹操更看重谁?