Maven: 如何在父POM中引用子项目的构建目录?
Maven: 如何在父POM中引用子项目的构建目录?
我有一个多模块的Maven项目,其中某些模块必须构建为Docker镜像。我试图将所有的配置放在父POM中,像这样:\n父POM:\n
com.spotify docker-maven-plugin 0.3.5 java ${project.artifactId} ["java", "-jar", "/${project.build.finalName}.jar"] / ${project.build.directory}/${project.build.finalName}-executable ${project.build.finalName}.jar lib/*.jar
\n子POM:\n
com.spotify docker-maven-plugin
\n但是当我在子项目上运行mvn docker:build
时,我会得到一个错误,因为project.build.directory
属性被解析为父POM的目标目录,而不是子目录的目标目录。\n有没有可能延迟父POM中属性的扩展?或者从父POM中引用子POM的project.*
属性?
问题出现的原因是我在使用版本属性时也使用了属性(像这样:Maven version with a property)。这只有在从聚合POM运行Maven时才有效(有点)。切换到显式版本(并使用maven-release-plugin更新它们)解决了这个问题。