Как я могу сделать такие ресурсы, как .gitignore
, частью результирующего проекта?
- создать архетип с
archetype-resources/.gitignore
mvn install
mvn archetype:generate
- результирующий проект не содержит
.gitignore
PS. Я уверен, что его там нет.
Как я могу сделать такие ресурсы, как .gitignore
, частью результирующего проекта?
archetype-resources/.gitignore
mvn install
mvn archetype:generate
.gitignore
PS. Я уверен, что его там нет.
Ошибка, кажется, все еще присутствует в 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».
_
:)
- person xbmono; 28.05.2019
__gitignore__
скопирован с последней версией архетипа, но файл не переименовывается maven.
- person Naman; 03.01.2021
Это решение для будущего плагина 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>
src/main/resources/META-INF/maven/archetype-metadata.xml
по-прежнему необходима. См.: stackoverflow.com/a/8909897/3165190.
- person Falko Menge; 24.10.2018
Добавьте запись fileSet
в src/main/resources/META-INF/maven/archetype-metadata.xml
с пустым тегом каталога:
<fileSet>
<directory></directory>
<includes>
<include>.gitignore</include>
</includes>
</fileSet>
Это скопирует включенные файлы из src/main/resources/archetype-resources
в корневой каталог проекта.
Проверьте версию плагина 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>
ARCHETYPE/issues/ARCHETYPE-505 strong> показывает, что это полностью не работает с текущими версиями плагина и maven. Никакие обходные пути больше не помогают в этом.
Решение, которое отлично сработало для меня, состояло в том, чтобы использовать архетип после установки groovy script.
Создайте файл META-INF/archetype-post-generate.groovy
в папке ресурсов вашего проекта архетипа.
Добавьте этот код:
file = new File( request.getOutputDirectory(), request.getArtifactId()+"/.gitignore.tmpl" );
def gitIgnorefile = new File( request.getOutputDirectory(), request.getArtifactId()+"/.gitignore" );
file.renameTo(gitIgnorefile)
В файл archetype-metadata.xml
включите файл шаблона .gitignore.tmpl
.
<fileSet>
<directory/>
<includes>
<include>.gitignore.tmpl</include>
</includes>
</fileSet>
У меня были проблемы с плагином ресурсов maven, поэтому я использовал отличное скриптовое решение.
maven-archetype-plugin
3.2.0 и maven-resources-plugin
3.2.0. Предыдущий обходной путь (<addDefaultExcludes>false</addDefaultExcludes>
) не работает, но решение с META-INF/archetype-post-generate.groovy
отлично сработало для меня!
- person Ivan Ponomarev; 16.02.2021
Альтернативой понижению версии 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>
ошибка все еще присутствует в новейших версиях 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>
.gitignore
: но как вы генерируете с помощью.gitignore
? - person flungo   schedule 19.07.2016