2011-11-02 10 views
15

Qualcuno sa come posso rendere le risorse come .gitignore essere parte del progetto risultante?Il plugin dell'archetipo Maven non consente risorse in risorse archetipo tramite

  1. creare archetipo archetipo-risorse/.gitignore
  2. mvn installare
  3. mvn archatype: generare
  4. conseguente progetto non contiene .gitignore

PS. Sono sicuro che non è lì.

+0

Tutte le soluzioni qui, risolvono solo metà del problema. Ricevono l'archetipo costruito, con il '.gitignore': ma come si genera con '.gitignore'? – flungo

risposta

9

aggiungere una voce fileSet-src/main/resources/META-INF/maven/archetype-metadata.xml con un tag cartella vuota:

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

Questo copierà i file inclusi dal src/main/resources/archetype-resources alla directory principale del progetto.

9

Controlla la tua versione di maven-resources-plugin lanciando il build Maven su debug (con opzione -X). Se si utilizza 2.7, there is a regression where .gitignore files are silently ignored.

In questo caso, si dovrà utilizzare in modo esplicito 2,6 nel pom.xml:

<build> 
    <pluginManagement> 
     <plugins> 
      <plugin> 
       <artifactId>maven-resources-plugin</artifactId> 
       <version>2.6</version> 
      </plugin> 
     </plugins> 
    </pluginManagement> 
</build> 
0

alternativa per il downgrade maven-resources-plugin è quello di far rispettare plexus-utils versione che ha in realtà una regressione:

<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> 
+1

Preferisco la [soluzione] di vorburger (http://stackoverflow.com/a/37322323/859604) –

12

Questa soluzione per imminente maven-resources-plugin v3.0.0 (non ancora rilasciata al momento della pubblicazione di questo, corrente è ancora 2.7) da https://issues.apache.org/jira/browse/MRESOURCES-190 sembra meglio che trattenere gli aggiornamenti della versione:

<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> 
+1

Posso confermare che funziona utilizzando "addDefaultExcludes". L'utilizzo dell'archetipo 2.4 e di maven-resources-plugin v.3.0.1 ha ancora lo stesso problema. – max

+0

addDefaultExclude funziona bene come descritto qui. Finalmente! –

0

il bug è ancora nel più recente plug-in maven-archetype 2.4 e maven-resources-plugin 3.0.1.

ecco la soluzione:

<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> 

e nel generare pom.xml si dovrebbe aggiungere

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-resources-plugin</artifactId> 
    <version>2.6</version> 
</plugin> 
+0

La [soluzione] (http://stackoverflow.com/a/37322323/859604) di vorburger è migliore in quanto non implica l'uso di plug-in obsoleti. –

1

Il bug sembra essere ancora presente nel v3.0.1 maven-archetipo-plugin . Per coloro che non vogliono eseguire il downgrade del plugin maven-resource-plugin. Sono riuscito a stabilire una soluzione più o meno brutta.

In primo luogo si rinomina l'archetipo-risorse/.gitignore a

__gitignore__ 

poi all'interno del archetype-metadata.xml aggiungere

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

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

Quando l'archetipo viene generato Maven ora prima copiare il __gitignore__ poi vede la __[file]__ la sintassi e la sostituirà con il valore predefinito ".gitignore"

Problemi correlati