0

我有一个 maven 构建设置,但有人要求我对 uberjar 进行一次更改,即不包含 pom 文件,因为它会弄乱我的客户后续构建,该构建使用我的 uberjar 作为依赖项。我知道这不是这样做的方法,但由于安全问题,我的客户无法访问我的中央仓库。因此,uberjar 被确定为一种部署方法。现在的问题是:有没有办法在通过 maven 创建 jar 时不包含 pom 文件?

谢谢,

布莱尔

4

1 回答 1

0

我假设您正在使用 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”部分和其中包含的排除项。

希望对您有所帮助,如果可以,请记住将我的答案标记为正确,以便我获得声誉积分。

于 2013-03-29T22:47:55.290 回答