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

continuous updating…

Maven技巧部分

  1. 定义mvn install生成的文件名称

    <build>
        <finalName>打包名称</finalName>
    </build>
  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插件部分

这里写图片描述

  1. maven-surefire-plugin单元测试的插件
    这里写图片描述
  2. maven-compiler-plugin编译插件
    这里写图片描述

  3. maven-jar-plugin将工程打成jar包时额外操作的插件
    这里写图片描述
    这里写图片描述

    这里写图片描述

    MANIFEST.MF的内容:
    这里写图片描述

    这里写图片描述

    对于Springboot项目需要的插件,此插件中已经包含了多个插件,例如:maven-jar-pluginmaven-war-plugin
    这里写图片描述

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

猜你喜欢

转载自blog.csdn.net/qq_30038111/article/details/80941963