Maven archetype插件不允许在archetype-resources中使用.resources

lis*_*sak 24 maven-3 maven-archetype

有谁知道如何让像.gitignore这样的资源成为最终项目的一部分?

  1. 使用archetype-resources/.gitignore创建原型
  2. mvn安装
  3. mvn archatype:generate
  4. 生成的项目不包含.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)


dsc*_*ten 5

ARCHETYPE/issues/ARCHETYPE-505表明,当前版本的插件和 maven 已经完全破坏了这一点。没有任何解决方法可以帮助解决这个问题。