Maven:建立儿童项目的码头图像



我的项目具有以下结构:

pom.xml
  |
  x----child1
  |      |
  |      x----pom.xml
  |
  x----child2
         |
         x----pom.xml

有一个父亲和两个孩子。孩子的构建使用Spotify插件来生成项目的Docker图像。我的问题是,如何从根目录中调用两个构建?我基本上需要在儿童模块上调用Spotify插件构建。我试图使用

mvn clean install

但是,孩子们是用小杂货店 - 包木工制造的,而不是与码头杂志 - 马文 - 普林本建造的。

这是我在孩子中使用的构建:

<build>
    <plugins>
        <plugin>
            <groupId>com.spotify</groupId>
            <artifactId>docker-maven-plugin</artifactId>
            <version>${spotify.plugin.version}</version>
            <configuration>
                <imageName>childImage</imageName>
                <dockerDirectory>${project.build.directory}/../src/docker</dockerDirectory>
                <resources>
                    <resource>
                        <targetPath>/</targetPath>
                        <directory>${project.build.directory}</directory>
                        <include>${project.build.finalName}.jar</include>
                    </resource>
                </resources>
            </configuration>
        </plugin>
    </plugins>
</build>

在pom父亲我已经定义了这样的模块。

   <modules>
        <module>child1</module>
        <module>child2</module>
   </modules>

感谢建议!

您有几个解决此问题的选项:

  1. 在父型POM的部分中配置插件,但默认插件配置以跳过Docker构建,并在子模块中覆盖该插件以不跳过
  2. 仅在子模块中配置它并将构建目标绑定到包装阶段。

我一直在使用[2]与Child Pom.xml:

<build>
  <plugins>
    ...
    <plugin>
      <groupId>com.spotify</groupId>
      <artifactId>docker-maven-plugin</artifactId>
      <version>0.4.13</version>
      <executions>
        <execution>
          <goals>
            <goal>build</goal>
          </goals>
          <phase>package</phase>
        </execution>
      </executions>
      <configuration>
        <imageName>example</imageName>
        <baseImage>example</baseImage>
        <resources>
          <resource>
            <targetPath>/</targetPath>
            <directory>target</directory>
            <include>example.war</include>
          </resource>
        </resources>
      </configuration>
    </plugin>
  ...
  </plugins>
</build>

尝试将以下内容添加到插件:

<executions>
    <execution>
        <phase>install</phase>
        <goals>
            <goal>build</goal>
        </goals>
    </execution>
</executions>

最新更新