使用最小的 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>