我的项目具有以下结构:
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>
感谢建议!
您有几个解决此问题的选项:
- 在父型POM的部分中配置插件,但默认插件配置以跳过Docker构建,并在子模块中覆盖该插件以不跳过
- 仅在子模块中配置它并将构建目标绑定到包装阶段。
我一直在使用[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>