创建maven uberjar而不包含内部pom文件

时间:2013-03-28 16:41:59

标签: maven pom.xml uberjar

我有一个maven构建设置,但是我已经要求我对uberjar进行一次更改,那就是不包含pom文件,因为它会影响我的客户端后续构建,使用我的uberjar作为依赖。我知道这不是这样做的方法,但由于安全问题,我的客户端无法访问我的中央仓库。因此,uberjar作为一种部署方法得到了解决。现在的问题是:有没有办法不通过maven创建jar来包含pom文件?

谢谢,

布莱尔

1 个答案:

答案 0 :(得分: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”部分和其中包含的排除。

希望有所帮助,如果是这样,请记住将我的答案标记为正确,以便获得声望点。