Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 带Docker的Maven包装_Java_Maven_Docker - Fatal编程技术网

Java 带Docker的Maven包装

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

我有一个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 package
而不是
mvn package

打包前的清理确保之前生成的工件文件未被使用。缓存的jar是什么意思?您是否在pom文件中使用了任何类型的插件,这些插件要求您进行
mvn清理
。从技术上讲,主流插件不需要
clean
构建周期。除非您的项目需要它,或者您更改了类名,否则旧的类名仍然可以挂在您的jar中。如果你不确定,做一个干净的包装总是有意义的。或者一个干净的安装将它放在本地m2回购中。撇开docker构建,你的
mvn包是否正在更新
target
文件夹上的
jar
?@SriniM我实际上刚刚注意到它没有。。这是什么原因造成的?出于某种原因,我没有编译任何东西-所有的类都是最新的,尽管我显然在修改代码..从ide构建?