Java 带Docker的Maven包装
我有一个Spring项目和一个相应的JAR文件 在我更改了一个Java类文件中的某些内容并运行了Java 带Docker的Maven包装,java,maven,docker,Java,Maven,Docker,我有一个Spring项目和一个相应的JAR文件 在我更改了一个Java类文件中的某些内容并运行了mvn package之后,以后构建该项目的Docker映像将使用缓存的JAR 只有在运行mvn clean package时,我的Docker构建过程才不会使用缓存的JAR: Step 4/6 : COPY app/target/app-${VERSION}.jar app.jar ---> 19987e6dda16 这是预期的吗? 在更改一些代码后,我是否总是必须运行mvn clean
mvn package
之后,以后构建该项目的Docker映像将使用缓存的JAR
只有在运行mvn clean package
时,我的Docker构建过程才不会使用缓存的JAR:
Step 4/6 : COPY app/target/app-${VERSION}.jar app.jar
---> 19987e6dda16
这是预期的吗?
在更改一些代码后,我是否总是必须运行
mvn clean package
而不是mvn package
?打包前的清理确保之前生成的工件文件未被使用。缓存的jar是什么意思?您是否在pom文件中使用了任何类型的插件,这些插件要求您进行mvn清理
。从技术上讲,主流插件不需要clean
构建周期。除非您的项目需要它,或者您更改了类名,否则旧的类名仍然可以挂在您的jar中。如果你不确定,做一个干净的包装总是有意义的。或者一个干净的安装将它放在本地m2回购中。撇开docker构建,你的mvn包是否正在更新target
文件夹上的jar
?@SriniM我实际上刚刚注意到它没有。。这是什么原因造成的?出于某种原因,我没有编译任何东西-所有的类都是最新的,尽管我显然在修改代码..从ide构建?