我有一个 maven 构建设置,但有人要求我对 uberjar 进行一次更改,即不包含 pom 文件,因为它会弄乱我的客户后续构建,该构建使用我的 uberjar 作为依赖项。我知道这不是这样做的方法,但由于安全问题,我的客户无法访问我的中央仓库。因此,uberjar 被确定为一种部署方法。现在的问题是:有没有办法在通过 maven 创建 jar 时不包含 pom 文件?
谢谢,
布莱尔
我假设您正在使用 maven-assembly-plugin 来构建您的 uberjar 并使用程序集描述符。您要做的是指示程序集插件(通过程序集描述符)排除任何名为“pom.xml”的文件。例如:
<assembly>
<id>bin</id>
<formats>
<format>jar</format>
</formats>
<includeBaseDirectory>false</includeBaseDirectory>
<fileSets>
<fileSet>
<directory>target/classes</directory>
<outputDirectory>/</outputDirectory>
</fileSet>
</fileSets>
<dependencySets>
<dependencySet>
<outputDirectory>/</outputDirectory>
<unpack>true</unpack>
<unpackOptions>
<excludes>
<exclude>**/pom.xml</exclude>
</excludes>
</unpackOptions>
<scope>runtime</scope>
<useProjectArtifact>false</useProjectArtifact>
</dependencySet>
</dependencySets>
</assembly>
这里的关键是“unpackOptions”部分和其中包含的排除项。
希望对您有所帮助,如果可以,请记住将我的答案标记为正确,以便我获得声誉积分。