使用最小的 pom / parent pom.xml / flattened / regenerated pom [maven] 创建一个 jar 神器
Create a jar artifact with minimal pom / parent pom.xml / flattened / regenerated pom [maven]
我有一个多模块 maven 项目,并将生成的 jar 文件分发给不同的各方。 jar 文件的一部分是 pom.xml 文件(在 META-INF/maven/.../pom.xml)。
问题在于,父 pom.xml 缺失,其中包含完整的依赖项列表和必要的依赖项版本等。
所以我尝试了几件事:
Solution 1
I added the effective pom to the jar file
Problem
the pom file is way too big, with too much information (partly internal, local etc)
Solution 2
I combined two plugins and managed to additionally add the parent pom.xml file to the jar.
Problem
This is way better than S1 however the parent pom again contains a (grand)parent and also tags like <scm>
which are internal and could & should not be handed to the outside world
现在我想开始操作父pom并删除一些部分等。但是必须有更好的解决方案和其他有同样问题的人吗?
我需要的是(例如)一个插件,它创建一个干净的“可发布”pom.xml 文件,仅包含依赖项(当然还有工件、groupid、版本),然后可以由外部各方导入到他们的回购协议没有任何冲突。这可能吗?
唯一与日食无关的是日食tycho pom generator plugin。然而,它是特定于 eclipse 的...
flatten-maven-plugin is exactly what I needed! Thanks to khmarbaise
我使用以下配置,pom 看起来很漂亮:-)
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>flatten-maven-plugin</artifactId>
<version>1.2.2</version>
<configuration>
<pomElements>
<repositories>flatten</repositories>
</pomElements>
</configuration>
<executions>
<execution>
<id>flatten</id>
<phase>process-resources</phase>
<goals>
<goal>flatten</goal>
</goals>
</execution>
<execution>
<id>flatten.clean</id>
<phase>clean</phase>
<goals>
<goal>clean</goal>
</goals>
</execution>
</executions>
</plugin>
我有一个多模块 maven 项目,并将生成的 jar 文件分发给不同的各方。 jar 文件的一部分是 pom.xml 文件(在 META-INF/maven/.../pom.xml)。
问题在于,父 pom.xml 缺失,其中包含完整的依赖项列表和必要的依赖项版本等。 所以我尝试了几件事:
Solution 1 | I added the effective pom to the jar file |
---|---|
Problem | the pom file is way too big, with too much information (partly internal, local etc) |
Solution 2 | I combined two plugins and managed to additionally add the parent pom.xml file to the jar. |
---|---|
Problem | This is way better than S1 however the parent pom again contains a (grand)parent and also tags like <scm> which are internal and could & should not be handed to the outside world |
现在我想开始操作父pom并删除一些部分等。但是必须有更好的解决方案和其他有同样问题的人吗?
我需要的是(例如)一个插件,它创建一个干净的“可发布”pom.xml 文件,仅包含依赖项(当然还有工件、groupid、版本),然后可以由外部各方导入到他们的回购协议没有任何冲突。这可能吗?
唯一与日食无关的是日食tycho pom generator plugin。然而,它是特定于 eclipse 的...
flatten-maven-plugin is exactly what I needed! Thanks to khmarbaise 我使用以下配置,pom 看起来很漂亮:-)
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>flatten-maven-plugin</artifactId>
<version>1.2.2</version>
<configuration>
<pomElements>
<repositories>flatten</repositories>
</pomElements>
</configuration>
<executions>
<execution>
<id>flatten</id>
<phase>process-resources</phase>
<goals>
<goal>flatten</goal>
</goals>
</execution>
<execution>
<id>flatten.clean</id>
<phase>clean</phase>
<goals>
<goal>clean</goal>
</goals>
</execution>
</executions>
</plugin>