在组装期间合并 parent 和 child pom
Merge parent and child pom during assembly
我有一个 multi-module Maven 项目。我想组装每个 child 所以当它们被解压缩并用 maven 执行时不依赖于 parent pom。
有没有办法用汇编插件来处理 "merge" parent pom 和 child pom?
原项目:
├── pom.xml
├── README.md
├── module1
│ ├── assembly.xml
│ ├── pom.xml
│ ├── README.md
│ └── src
└── module2
├── assembly.xml
├── pom.xml
├── README.md
└── src
组装包(zip):
moduleX
├── pom.xml <-- merged pom
├── README.md
└── src
打包的程序集将由我们组织以外的外部客户使用,因此他无权访问我们的存储库。
更新:
正如 JF Meier 建议的那样,使用 flatten-maven-plugin
解决了我的问题。
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>flatten-maven-plugin</artifactId>
<version>1.2.1</version>
<executions>
<execution>
<id>flatten</id>
<phase>prepare-package</phase>
<goals>
<goal>flatten</goal>
</goals>
<configuration>
<flattenMode>bom</flattenMode>
<pomElements>
<build>keep</build>
</pomElements>
</configuration>
</execution>
</executions>
</plugin>
然后在我的 assembly.xml 上添加生成的 .flattened-pom.xml
并将其重命名为 pom.xml:
<files>
<file>
<source>.flattened-pom.xml</source>
<destName>pom.xml</destName>
</file>
</files>
我猜你想要
https://www.mojohaus.org/flatten-maven-plugin/
它允许您将父 POM "merge" 放入您的 POM 中。
我有一个 multi-module Maven 项目。我想组装每个 child 所以当它们被解压缩并用 maven 执行时不依赖于 parent pom。
有没有办法用汇编插件来处理 "merge" parent pom 和 child pom?
原项目:
├── pom.xml
├── README.md
├── module1
│ ├── assembly.xml
│ ├── pom.xml
│ ├── README.md
│ └── src
└── module2
├── assembly.xml
├── pom.xml
├── README.md
└── src
组装包(zip):
moduleX
├── pom.xml <-- merged pom
├── README.md
└── src
打包的程序集将由我们组织以外的外部客户使用,因此他无权访问我们的存储库。
更新:
正如 JF Meier 建议的那样,使用 flatten-maven-plugin
解决了我的问题。
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>flatten-maven-plugin</artifactId>
<version>1.2.1</version>
<executions>
<execution>
<id>flatten</id>
<phase>prepare-package</phase>
<goals>
<goal>flatten</goal>
</goals>
<configuration>
<flattenMode>bom</flattenMode>
<pomElements>
<build>keep</build>
</pomElements>
</configuration>
</execution>
</executions>
</plugin>
然后在我的 assembly.xml 上添加生成的 .flattened-pom.xml
并将其重命名为 pom.xml:
<files>
<file>
<source>.flattened-pom.xml</source>
<destName>pom.xml</destName>
</file>
</files>
我猜你想要
https://www.mojohaus.org/flatten-maven-plugin/
它允许您将父 POM "merge" 放入您的 POM 中。