Плагин Maven для архетипов не пропускает .resources в archetype-resources через - PullRequest
22 голосов
/ 02 ноября 2011

Кто-нибудь знает, как сделать ресурсы типа .gitignore частью конечного проекта?

  1. создать архетип с помощью archetype-resources / .gitignore
  2. mvn install
  3. mvn archatype: генерировать
  4. результирующий проект не содержит .gitignore

PS.Я уверен, что его там нет.

Ответы [ 6 ]

19 голосов
/ 19 мая 2016

Это решение для будущей версии maven-resources-plugin 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>
11 голосов
/ 18 января 2012

Добавить запись fileSet в src/main/resources/META-INF/maven/archetype-metadata.xml с пустым тегом каталога:

<fileSet>
  <directory></directory>
  <includes>
    <include>.gitignore</include>
  </includes>
</fileSet>

Это скопирует включенные файлы из src/main/resources/archetype-resources в корневой каталог проекта.

9 голосов
/ 03 апреля 2015

Проверьте версию плагина maven-resources-plugin, запустив сборку Maven при отладке (с опцией -X). Если вы используете 2.7, , возникает регрессия, при которой файлы .gitignore молча игнорируются .

В этом случае вам придется явно использовать 2.6 в вашем pom.xml:

<build>
    <pluginManagement>
        <plugins>
            <plugin>
                <artifactId>maven-resources-plugin</artifactId>
                <version>2.6</version>
            </plugin>
        </plugins>
    </pluginManagement>
</build>
6 голосов
/ 01 марта 2018

Ошибка по-прежнему присутствует в maven-archetype-plugin v3.0.1. Для тех, кто не хочет понижать версию maven-resource-plugin. Мне удалось найти более или менее безобразный обходной путь.

Сначала вы переименуете archetype-resources / .gitignore в

__gitignore__

затем внутри archetype-metadata.xml добавить

<requiredProperties>
    <requiredProperty key="gitignore">
        <defaultValue>.gitignore</defaultValue>
    </requiredProperty>
</requiredProperties>

<fileSets>
    <fileSet>
        <directory></directory>
        <includes>
            <include>__gitignore__</include>
        </includes>
    </fileSet>
</fileSets>

Когда генерируется архетип, maven теперь сначала скопирует __gitignore__, затем увидит синтаксис __[file]__ и заменит его значением по умолчанию ".gitignore"

0 голосов
/ 12 августа 2016

ошибка по-прежнему в новейшем maven-archetype-plugin 2.4 и maven-resources-plugin 3.0.1.

вот решение:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-archetype-plugin</artifactId>
    <version>2.2</version>
</plugin>
<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-resources-plugin</artifactId>
    <version>2.6</version>
 </plugin>

и в вашем генерацииpom.xml вы должны добавить

 <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-resources-plugin</artifactId>
    <version>2.6</version>
 </plugin>
0 голосов
/ 31 июля 2015

Альтернатива для понижения maven-resources-plugin заключается в применении plexus-utils версии, которая на самом деле имеет регрессию:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-resources-plugin</artifactId>
    <version>2.7</version>
    <dependencies>
        <!-- it's for fixing maven-resources-plugin 2.7 MRESOURCES-190 -->
        <dependency>
            <groupId>org.codehaus.plexus</groupId>
            <artifactId>plexus-utils</artifactId>
            <!-- this is last 2.x release -->
            <version>2.1</version>
        </dependency>
    </dependencies>
</plugin>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...