Maven:包含JAR&#39的META-INF中的文件

时间:2016-08-08 15:39:41

标签: java maven jar maven-jar-plugin meta-inf

我正在使用Maven构建一个Java项目,并且我有一些文件<antcall target="generate-jnlp"/> <sign-jars keystore="${jnlp.signjar.keystore}" storepass="${jnlp.signjar.storepass}" keypass="${jnlp.signjar.keypass}" alias="${jnlp.signjar.alias}" mainjar="${dist.jar}" destdir="dist" codebase="${jnlp.codebase.value}" signedjarsprop="jnlp.signed.jars" **componentsprop="jnlp.components"> CHANGELOG,我想复制到JAR文件中的LICENSE目录。

到目前为止,我所做的工作如下:

META-INF

但是在编译时也会将这两个文件复制到<build> <resources> <resource> <directory>${project.basedir}</directory> <includes> <include>CHANGELOG</include> <include>LICENSE</include> </includes> <targetPath>META-INF</targetPath> </resource> </resources> <plugins> ... 目录。

所以我希望将文件包含在JAR文件中,但不管怎样。有没有办法做到这一点?

3 个答案:

答案 0 :(得分:6)

您无需指定任何自定义maven配置即可满足您的需求 在src/main/resources中,只需创建一个META-INF文件夹并将文件放在此处 通过这种方式,您可以在构建的JAR的META-INF文件夹中找到它们。

此外,您应该删除<resource>中添加的pom.xml元素,因为它将默认资源文件夹更改为项目的根目录而不是默认的src/main/resources

答案 1 :(得分:0)

如果要向META-INF文件夹添加文件和目录,请在pom.xml中使用此代码

   <build>
        <finalName>CustomJsfComponents</finalName>
        <resources>
            <resource>
                <directory>src/main/resources</directory>
                <includes>
                    <include>**.xml</include>
                    <include>**resources/**</include>
                </includes>
                <targetPath>META-INF</targetPath>
            </resource>
        </resources>
    </build>

答案 2 :(得分:0)

通过添加 webResources

修改您的 pom
<plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-war-plugin</artifactId>
            <version>2.3</version>
            <configuration>
                <failOnMissingWebXml>false</failOnMissingWebXml>
                <webResources>
                    <resource>
                        <directory>target/classes/META-INF/</directory>
                        <includes>
                            <include>*.*</include>
                        </includes>
                        <targetPath>META-INF/</targetPath>
                    </resource>
                </webResources>
            </configuration>
        </plugin>

考虑要在

中找到的 config.properties 文件
src / main / resources / META-INF / config.properties

战争示例输出 war output example