如果所有课程都是最新的“Nothing to compile - all classes are up to date
”
那么maven会再创造一个罐子吗?
正如我在日志中看到的那样,jar不再创建。所以maven知道所有课程都是最新的。
问题:是否有任何流程或其他因素可以解决这个问题?
答案 0 :(得分:5)
Maven Jar Plugin将通过其jar
目标创建一个jar(如果不存在),或者如果存在则跳过其创建但没有任何更改。
您可以强制通过其forceCreation
选项创建广告素材(因为版本 2.2 )。来自official documentation:
即使没有任何内容显示已更改,也需要jar插件来构建新的JAR。默认情况下,此插件会查看输出jar是否存在且输入是否未更改。如果这些条件为真,则插件会跳过jar的创建。当其他插件(如maven-shade-plugin)配置为对jar进行后处理时,这不起作用。此插件无法检测后处理,因此将后处理的jar留在原位。当这些插件不希望找到自己的输出作为输入时,这可能导致失败。将此参数设置为true可以通过强制此插件每次都重新创建jar来避免这些问题。
其默认值为false
,这说明了您的行为。
如果您想强制始终,您可以添加到您的pom文件中:
<project>
...
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>2.6</version>
<configuration>
<forceCreation>true</forceCreation>
</configuration>
...
</plugin>
</plugins>
</build>
...
</project>
或者只是在单个构建上,按以下方式调用它:
mvn package -Djar.forceCreation=true
所以,回到你的问题:
是否有任何过程或其他事情可以解决这个问题?
答案是:是的,Maven Jar插件适用于此,上面的选项将改变其行为。