当使用mvn clean install 时,执行的是两个phase:clean和install
它会将install之前的phase如compile、test、package按顺序执行。
使用mvn help:effective-pom 就可以查看到这两个阶段的详细情况,如:
<plugin>
<artifactId>maven-clean-plugin</artifactId>
<version>2.4.1</version>
<executions>
<execution>
<id>default-clean</id>
<phase>clean</phase>
<goals>
<goal>clean</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<artifactId>maven-install-plugin</artifactId>
<version>2.3.1</version>
<executions>
<execution>
<id>default-install</id>
<phase>install</phase>
<goals>
<goal>install</goal>
</goals>
</execution>
</executions>
</plugin>
而mvn jar:jar只是执行插件maven-jar-plugin的目标jar,只完成打包操作,但是使用mvn maven-jar-plugin:jar却报错,进入本地仓库E:\apache-maven-3.0.3\repo\org\apache\maven\plugins\maven-jar-plugin\2.3.1,查看maven-jar-plugin-2.3.1.jar\META-INF\maven\plugin.xml,可以看到
<goalPrefix>jar</goalPrefix>
因此正确的语法是mvn jar:jar,此命令只完成jar这一个子目标,不会执行package之前的compile等操作。