小编djd*_*tra的帖子

Maven:如何在父POM中引用子项目的构建目录?

我有一个多模块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 引用子项的属性?

java maven

8
推荐指数
1
解决办法
1582
查看次数

标签 统计

java ×1

maven ×1