8
我有一個多模塊Maven項目,其中一些模塊必須作爲Docker鏡像構建。我試圖把所有的配置在父POM像這樣:Maven:如何在父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>
兒童POM:
<build>
<plugins>
<plugin>
<groupId>com.spotify</groupId>
<artifactId>docker-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
但是,當我對孩子的項目運行mvn docker:build
我得到一個錯誤,因爲project.build.directory
屬性已解析爲父POM的目標目錄,而不是子目標目錄。
是否有可能延遲父POM中屬性的擴展?或者從父POM中引用孩子的project.*
屬性?
不可能,如果你做mvn docker:build in child,$ {project.build.directory} = child/target,因爲你的插件在pluginManagement中。顯示日誌 ? –