maven-jar-plugin 不包含 .gitignore 文件
maven-jar-plugin does not include .gitignore file
我尝试使用 maven 将应用程序打包到 jar 文件中。除了 .gitignore
文件之外的所有文件都以某种方式添加到 jar。
为什么跳过这个文件,我该如何禁用它?
即使我尝试像下面那样包含它,包含也会被忽略并且 jar 文件仍然是空的。
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<includes>
<include>**/.gitignore</include>
</includes>
</configuration>
</plugin>
- maven-jar-插件版本:3.1.0
- maven 版本:3.5.2
我用 src/main/resources/.gitignore
试过了,它使用默认的 maven-jar-plugin:2.4
,即 .gitignore
被打包到 JAR 中。
然后我使用了你提到的 maven-jar-plugin:3.1.0
,但它 没有 工作,正如你描述的那样。
原来v2.5以后就不行了
首先是使用jar 文件的示例项目令人惊讶。我绝不会期望在 .jar
文件中包含示例项目。 jar 文件的意图有所不同。我建议使用更合适的东西,如 .zip
或 .tar.gz
等。(这可以通过 maven-assembly-plugin 实现)这将防止意外的非预期用途。
除此之外,整个问题是基于通常从 src/main/resources
复制到 target/classes
目录的资源定义。这是由 maven-resources-plugin
.
完成的
包含.gitignore
的maven-resources-plugin plugin has some kind of configuration which excludes some files which are usually not copied。因此,这意味着仅将 .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 文件中(我不建议这样做。)
我对 target/classes
文件夹中的 .metadata
文件夹有同样的问题。 .metadata
文件夹未包含在 jar 存档中。
对我来说,它不适用于 maven-jar-plugin:2.4
及更高版本。对于 2.3 版,它正在运行。
我尝试使用 maven 将应用程序打包到 jar 文件中。除了 .gitignore
文件之外的所有文件都以某种方式添加到 jar。
为什么跳过这个文件,我该如何禁用它?
即使我尝试像下面那样包含它,包含也会被忽略并且 jar 文件仍然是空的。
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<includes>
<include>**/.gitignore</include>
</includes>
</configuration>
</plugin>
- maven-jar-插件版本:3.1.0
- maven 版本:3.5.2
我用 src/main/resources/.gitignore
试过了,它使用默认的 maven-jar-plugin:2.4
,即 .gitignore
被打包到 JAR 中。
然后我使用了你提到的 maven-jar-plugin:3.1.0
,但它 没有 工作,正如你描述的那样。
原来v2.5以后就不行了
首先是使用jar 文件的示例项目令人惊讶。我绝不会期望在 .jar
文件中包含示例项目。 jar 文件的意图有所不同。我建议使用更合适的东西,如 .zip
或 .tar.gz
等。(这可以通过 maven-assembly-plugin 实现)这将防止意外的非预期用途。
除此之外,整个问题是基于通常从 src/main/resources
复制到 target/classes
目录的资源定义。这是由 maven-resources-plugin
.
包含.gitignore
的maven-resources-plugin plugin has some kind of configuration which excludes some files which are usually not copied。因此,这意味着仅将 .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 文件中(我不建议这样做。)
我对 target/classes
文件夹中的 .metadata
文件夹有同样的问题。 .metadata
文件夹未包含在 jar 存档中。
对我来说,它不适用于 maven-jar-plugin:2.4
及更高版本。对于 2.3 版,它正在运行。