我正在使用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文件中,但不管怎样。有没有办法做到这一点?
答案 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