在makefile中,我可以轻松地执行如下操作:
${target}: ${sources}
mvn package
我有${target}
生成的jar文件,${sources}
所有的java文件和pom.xml
。使用此makefile,除非自上次构建目标以来更改了其中一个源,否则不会重新构建目标。结果是
$> make target/demo-0.8.0-SNAPSHOT-jar-with-dependencies.jar
make: 'target/demo-0.8.0-SNAPSHOT-jar-with-dependencies.jar' is up to date.
但是只有mvn package
将总是运行maven-assembly-plugin
,即使没有任何源文件改变。
问题:
有没有办法让mvn package
知道源文件,就像make
知道这一点一样,所以它只会说"不需要,它已经构建好了"。
是否有意义可能取决于用例和开发人员。在一个集成远比通过单元测试复杂得多的系统中,获得信心的唯一方法是部署到测试Kubernetes环境中。
无论如何,感谢你回答我的问题,maven打包插件无法处理这个依赖跟踪。