欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Maven常用命令、插件和遇到的坑

程序员文章站 2022-05-04 10:55:37
...

continuous updating…

Maven技巧部分

  1. 定义mvn install生成的文件名称,如果是war包,这里的打包名称会是项目访问的根路径(注意,没使用tomcat插件时)

    <build>
        <finalName>打包名称</finalName>
    </build>

    Maven常用命令、插件和遇到的坑

  2. mvn clean install -Dmaven.test.skip=true
    进入工程pom.xml所在目录,shift + 鼠标右键,选择“在此处打开命令窗口”,执行命令

  3. mvn compile
    进入工程pom.xml所在目录,shift + 鼠标右键,选择“在此处打开命令窗口”,执行命令

  4. mvn dependency:copy-dependencies -DoutputDirectory=./lib
    Maven仓库中的所有jar文件导出到当前目录的lib文件夹中,lib不存在时自动生成

  5. mvn dependency:tree
    在工程pom.xml所在目录,shift + 鼠标右键,选择“在此处打开命令窗口”,执行命令,查看工程是否存在jar包冲突

  6. mvn install:install-file -Dfile=E:\alipay-trade-sdk.jar -DgroupId=alipay -DartifactId=alipay-trade-sdk -Dversion=1.0 -Dpackaging=jar
    将外部jar导入本地Maven仓库

  7. 将单元测试放在src/main/test目录下,否则执行maven install时会报错,报错的原因可能是你将单元测试的类放在了src/main/java目录下,而你的junit依赖范围是test,即在maven编译src/main/java下的类时,junitjar包不在当前的classpath下,因此会报错。注意:Maven是约定大于配置,也就是说Maven约定单元测试要放在src/main/test目录下。当然,你可以更改junit的依赖范围,那么你的单元测试可以放在src/main/java下。
    Maven常用命令、插件和遇到的坑

Maven插件部分

Maven常用命令、插件和遇到的坑

  1. maven-surefire-plugin单元测试的插件
    Maven常用命令、插件和遇到的坑
  2. maven-compiler-plugin编译插件
    Maven常用命令、插件和遇到的坑

  3. maven-jar-plugin将工程打成jar包时额外操作的插件
    Maven常用命令、插件和遇到的坑
    Maven常用命令、插件和遇到的坑

    Maven常用命令、插件和遇到的坑

    MANIFEST.MF的内容:
    Maven常用命令、插件和遇到的坑

    Maven常用命令、插件和遇到的坑

    对于Springboot项目需要的插件,此插件中已经包含了多个插件,例如:maven-jar-pluginmaven-war-plugin
    Maven常用命令、插件和遇到的坑

  4. maven-assembly-plugin套件插件,详见下图,自己可以试一下,看看生成的文件中有什么内容
    Maven常用命令、插件和遇到的坑
    Maven常用命令、插件和遇到的坑

    <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>
  5. maven-enforcer-plugin对项目环境进行检查,比如要求项目成员使用JDK1.7及以上版本进行开发

    Maven常用命令、插件和遇到的坑

    <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>
  6. maven-resources-plugin资源过滤插件,注意直接在IDE中运行项目,不会过滤资源,只有打包时才会过滤
    到底何为资源过滤插件?例如工程中有jdbc.properties配置文件,pom.xml中配置了测试的profile和正式环境的profile,我们可通过mvn -Ppro install指定**的配置profile来替换jdbc.properties中的参数。下面是根据在pom中配置资源,当然,你可以在setting.xml中配置一些属性。
    Maven常用命令、插件和遇到的坑
    Maven常用命令、插件和遇到的坑
    Maven常用命令、插件和遇到的坑
    Maven常用命令、插件和遇到的坑
    Maven常用命令、插件和遇到的坑

相关标签: maven实用小知识