maven-3 - mvn - pom.xml que es
El complemento de arquetipo de Maven no permite.resources en recursos de arquetipo a través de (6)
¿Alguien sabe cómo puedo hacer que recursos como .gitignore sean parte del proyecto resultante?
- crear arquetipo con arquetipo-recursos / .gitignore
- instalar mvn
- mvn archatype: generar
- el proyecto resultante no contiene .gitignore
PD. Estoy seguro de que no está allí.
Agregue una entrada fileSet
a src/main/resources/META-INF/maven/archetype-metadata.xml
con una etiqueta de directorio vacía:
<fileSet>
<directory></directory>
<includes>
<include>.gitignore</include>
</includes>
</fileSet>
Esto copiará los archivos incluidos de src/main/resources/archetype-resources
al directorio raíz del proyecto.
El error parece estar todavía presente en el v3.0.1 de maven-archetype-plugin. Para aquellos que no quieren degradar el plugin de recursos de maven. Me las arreglé para establecer una solución más o menos fea.
Primero, cambia el nombre del archetype-resources / .gitignore a
__gitignore__
luego dentro del archetype-metadata.xml
agregar
<requiredProperties>
<requiredProperty key="gitignore">
<defaultValue>.gitignore</defaultValue>
</requiredProperty>
</requiredProperties>
<fileSets>
<fileSet>
<directory></directory>
<includes>
<include>__gitignore__</include>
</includes>
</fileSet>
</fileSets>
Cuando se genere el arquetipo, primero copiará __gitignore__
luego __gitignore__
la __gitignore__
__[file]__
y lo reemplazará con el valor predeterminado ".gitignore".
Esta solución para el próximo maven-resources-plugin v3.0.0 (que aún no se lanzó al momento de publicar esto; actualmente es 2.7) desde https://issues.apache.org/jira/browse/MRESOURCES-190 parece mejor que mantener Volver versiones de la versión:
<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>
La alternativa para degradar el maven-resources-plugin
es imponer la versión plexus-utils
que en realidad tiene una regresión:
<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>
Verifique su versión de plugin de recursos de maven iniciando la compilación de Maven en la depuración (con la opción -X). Si usa 2.7, hay una regresión donde los archivos .gitignore se ignoran silenciosamente .
En este caso, tendrá que usar explícitamente 2.6 en su pom.xml:
<build>
<pluginManagement>
<plugins>
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<version>2.6</version>
</plugin>
</plugins>
</pluginManagement>
</build>
el error aún se encuentra en el nuevo plugin de arvenipo 2.4 de maven y en el plugin de recursos de maven 3.0.1.
Aquí está la solución:
<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>
y en tu generar pom.xml debes agregar
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<version>2.6</version>
</plugin>