我有一个多模块Maven项目,其中一些模块必须构建为Docker镜像.我试图将所有配置放在父POM中,如下所示:
父POM:
<build>
<pluginManagement>
<plugins>
<plugin>
<groupId>com.spotify</groupId>
<artifactId>docker-maven-plugin</artifactId>
<version>0.3.5</version>
<configuration>
<baseImage>java</baseImage>
<imageName>${project.artifactId}</imageName>
<entryPoint>["java", "-jar", "/${project.build.finalName}.jar"]</entryPoint>
<resources>
<resource>
<targetPath>/</targetPath>
<directory>${project.build.directory}/${project.build.finalName}-executable</directory>
<include>${project.build.finalName}.jar</include>
<include>lib/*.jar</include>
</resource>
</resources>
</configuration>
</plugin>
</plugins>
</pluginManagement>
</build>
Run Code Online (Sandbox Code Playgroud)
儿童POM:
<build>
<plugins>
<plugin>
<groupId>com.spotify</groupId>
<artifactId>docker-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
Run Code Online (Sandbox Code Playgroud)
但是,当我运行mvn docker:build
子项目时,我收到一个错误,因为该project.build.directory
属性已解析为父POM的目标目录,而不是子目标目录.
是否有可能延迟父POM中属性的扩展?或者project.*
从父POM 引用子项的属性?
问题是我还使用了版本的属性(如下所示:带有属性的 Maven 版本)。仅当从聚合器 POM 运行 Maven 时,这才有效(某种程度上)。切换到显式版本(并使用 maven-release-plugin 更新它们)解决了这个问题。
归档时间: |
|
查看次数: |
1582 次 |
最近记录: |