我尝试用maven将应用程序打包到jar文件中。不知何故,除了.gitignore文件之外,所有文件都被添加到jar中。
为什么要跳过这个文件,我如何禁用这个文件?
即使我试图像下面这样包含它,也会忽略include,jar文件仍然是空的。
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<includes>
<include>**/.gitignore</include>
</includes>
</configuration>
</plugin>发布于 2019-04-04 13:09:34
我用一个src/main/resources/.gitignore尝试了这一点,它与默认的maven-jar-plugin:2.4一起工作,即.gitignore被打包到JAR中。
然后,我使用了您提到的maven-jar-plugin:3.1.0,但正如您所描述的那样,它不起作用。
从v2.5开始,它就不起作用了。
发布于 2019-05-21 10:27:00
我在.metadata文件夹中的target/classes文件夹也有同样的问题。.metadata文件夹不包含在jar存档中。对我来说,它不适用于maven-jar-plugin:2.4和upper。在2.3版中,它正在工作。
发布于 2019-04-04 18:43:30
第一件事是使用jar文件示例项目是惊人的。我绝不会期望在.jar文件中有示例项目。jar文件的意图是不同的。我建议使用一些更合适的东西,如.zip或.tar.gz等(这可以通过maven-程序集-插件实现),这将防止意外使用,而不是有意使用。
除了整个问题之外,还基于资源的定义,这些资源通常是从src/main/resources复制到target/classes目录的。这是由maven-resources-plugin完成的。
maven-资源-插件插件有某种配置,排除了一些包含.gitignore的通常不被复制的文件。因此,这意味着仅仅将一个.gitignore文件放入src/main/resources不会产生预期的结果,也不会在这里使用<includes>..</includes>配置。
这意味着您需要通过pluginManagement部分更改maven-resources-plugin的默认配置,如下所示:
<build>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<version>3.1.0</version>
<configuration>
<addDefaultExcludes>false</addDefaultExcludes>
</configuration>
</plugin>而.gitignore文件将被复制,并且应该打包到最终的jar文件中(我不建议这样做)。
https://stackoverflow.com/questions/55514758
复制相似问题