lis*_*sak 24 maven-3 maven-archetype
有谁知道如何让像.gitignore这样的资源成为最终项目的一部分?
PS.我确定它不存在.
vor*_*ger 20
这对于即将到来的行家-资源-插件V3.0.0解决方案(尚未发布,在发布此的时间;目前仍是2.7)从https://issues.apache.org/jira/browse/MRESOURCES-190似乎比保持更好后版升级:
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<configuration>
<!-- Required so that .gitignore gets included in archetypes; see https://issues.apache.org/jira/browse/MRESOURCES-190 -->
<addDefaultExcludes>false</addDefaultExcludes>
Run Code Online (Sandbox Code Playgroud)
小智 12
使用空目录标记添加fileSet条目src/main/resources/META-INF/maven/archetype-metadata.xml:
<fileSet>
<directory></directory>
<includes>
<include>.gitignore</include>
</includes>
</fileSet>
Run Code Online (Sandbox Code Playgroud)
这会将包含的文件复制src/main/resources/archetype-resources到项目根目录.
小智 10
这个bug似乎仍然存在于maven-archetype-plugin v3.0.1中.对于那些不想降级maven-resource-plugin的人.我设法建立了一个或多或少丑陋的解决方法.
首先,将archetype-resources/.gitignore重命名为
__gitignore__
Run Code Online (Sandbox Code Playgroud)
然后在archetype-metadata.xml添加内部
<requiredProperties>
<requiredProperty key="gitignore">
<defaultValue>.gitignore</defaultValue>
</requiredProperty>
</requiredProperties>
<fileSets>
<fileSet>
<directory></directory>
<includes>
<include>__gitignore__</include>
</includes>
</fileSet>
</fileSets>
Run Code Online (Sandbox Code Playgroud)
当生成原型时,maven现在将首先复制__gitignore__然后查看__[file]__语法并将其替换为默认值".gitignore"
小智 9
通过在调试时启动Maven构建(使用-X选项)来检查maven-resources-plugin版本.如果你使用2.7,那么会有一个回归,其中.gitignore文件被静默忽略.
在这种情况下,您必须在pom.xml中明确使用2.6:
<build>
<pluginManagement>
<plugins>
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<version>2.6</version>
</plugin>
</plugins>
</pluginManagement>
</build>
Run Code Online (Sandbox Code Playgroud)