14

Maven è 3.1.0.Versioni di Maven-versioni di maven-plugin plug-in 2.2

Sto usando versioni-maven-plugin: 2.2 nel mio pom.xml del progetto (come mostrato di seguito). A parte la configurazione del file pom.xml al solito, sto solo mostrando il codice snapshot principale sotto:

<project 
    xmlns="http://maven.apache.org/POM/4.0.0" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
     xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 

    <artifactId>tools-parent</artifactId> 
    <version>0.0.7-SNAPSHOT</version> 
    <packaging>pom</packaging> 

    <description> 
     Infrastructure related to the &quot;vapp&quot; and 
     &quot;deployer&quot; utilities. 
    </description> 

    <parent> 
     <groupId>com.company.product</groupId> 
     <artifactId>deploy-parent</artifactId> 
     <version>0.0.6-SNAPSHOT</version> 
    </parent> 

    <build> 
     <plugins> 
      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-scm-plugin</artifactId> 
       <version>1.9.4</version> 
       <configuration> 
        <connectionType>connection</connectionType> 
       </configuration> 
      </plugin> 
      <plugin> 
       <groupId>org.codehaus.mojo</groupId> 
       <artifactId>versions-maven-plugin</artifactId> 
       <version>2.2</version> 
      </plugin> 
      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-enforcer-plugin</artifactId> 
       <version>1.4</version> 
       <executions> 
        <execution> 
         <!-- Make sure that only non-snapshot versions are used for the dependencies. Only active when property 'snapshotDependencyAllowed' is false. --> 
         <id>enforce-no-snapshots</id> 
         <goals> 
          <goal>enforce</goal> 
         </goals> 
         <configuration> 
          <skip>${snapshotDependencyAllowed}</skip> 
          <rules> 
           <requireReleaseDeps> 
            <message>No Snapshots Allowed!</message> 
           </requireReleaseDeps> 
           <requireReleaseVersion> 
            <message>No Snapshots Allowed!</message> 
           </requireReleaseVersion> 
          </rules> 
         </configuration> 
        </execution> 
       </executions> 
      </plugin> 
     </plugins> 
    </build> 
</project> 

Ora, quando faccio funzionare: mvn installazione pulita, si costruisce con successo.

NOTA: Nel mio progetto, ho una sezione di genitore, in cui io sono dipendente da artefatto deploy-genitore il cui gruppo id "com.company.product" è lo stesso ID gruppo quello che voglio a strumenti genitore artefatto (il cui pom.xml ho incollato sopra) ma deploy-parent è un artefatto di un altro repository/progetto.

Quando corro: versioni mvn: set -DnewVersion = 0.0.7, viene visualizzato il seguente messaggio di errore.

[INFO] ------------------------------------------------------------------------ 
[INFO] Building tools-parent 0.0.7-SNAPSHOT 
[INFO] ------------------------------------------------------------------------ 
[INFO] 
[INFO] --- versions-maven-plugin:2.2:set (default-cli) @ tools-parent --- 
[INFO] Searching for local aggregator root... 
[INFO] Local aggregation root: /user/home/u100123/giga/tools 
[INFO] Processing change of com.company.product:tools-parent:0.0.7-SNAPSHOT -> 0.0.7 
[INFO] ------------------------------------------------------------------------ 
[INFO] Reactor Summary: 
[INFO] 
[INFO] tools-parent .................................... FAILURE [1.093s] 
[INFO] ------------------------------------------------------------------------ 
[INFO] BUILD FAILURE 
[INFO] ------------------------------------------------------------------------ 
[INFO] Total time: 2.404s 
[INFO] Finished at: Fri May 01 20:44:22 GMT-00:00 2015 
[INFO] Final Memory: 12M/246M 
[INFO] ------------------------------------------------------------------------ 
[ERROR] Failed to execute goal org.codehaus.mojo:versions-maven-plugin:2.2:set (default-cli) on project tools-parent: Execution default-cli of goal org.codehaus.mojo:versions-maven-plugin:2.2:set failed. NullPointerException -> [Help 1] 
[ERROR] 
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch. 
[ERROR] Re-run Maven using the -X switch to enable full debug logging. 
[ERROR] 
[ERROR] For more information about the errors and possible solutions, please read the following articles: 
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/PluginExecutionException 

ora, quando cambio la versione versioni-maven-plugin di nuovo a 2.1 (che ciò che stavo usando in precedenza), le suddette versioni MVN: impostare -DnewVersion = 0.0.7 comando sta lavorando con successo e il file pom.xml viene modificato con successo in <version>0.0.7</version> per gli artefatti strumenti-padre.

Con la versione 2.2, mi dà l'errore e non modifica la versione in 0.0.7.

  1. Qualsiasi motivo per cui 2.2 non funziona? Cosa si può fare per risolverlo?
+0

più importante qui è che l'annuncio ufficiale non è stato ancora dato ... – khmarbaise

+0

Hm .. grazie per la condivisione. –

risposta

23

Sembra un errore.

Soluzione:

. Devo aggiungere <groupId>com.company.product</groupId> proprietà al di fuori di ... sezione e, ad esempio, per strumenti-genitore, versione NOW-maven-plug-in: 2.2 funziona perfettamente, ovvero ho aggiunto la riga superiore (come mostrato di seguito). L'unica cosa è, a che serve la sezione genitore (a parte ereditare il codice principale di ciò che deploy-parent sta salendo al progetto tools-gen). Perché groupId deve essere definito come output della sezione parent per artifactId tools-parent quando è già presente nella sezione parent per versioni-maven-plugin: 2.2 per funzionare correttamente.

La cosa più importante è: Questo problema si verifica solo nel caso in cui il vostro pom.xml per un progetto/modulo ha una sezione in cui <parent> artifactId della sezione genitore non è il genitore del progetto stesso (una situazione zio Maven ), cioè se la proprietà artefatto da strumenti-padre è definita nella sezione genitore di un altro modulo (diciamo tools-child) allora la versione 2.2 funzionerà correttamente.Ma se la sezione genitore di tools-child non contiene l'artefatto come "tools-parent" ed è qualcos'altro per ex: deploy-parent/some-different-project-artefatto (che risiede in un altro progetto nello strumento di controllo del codice sorgente) poi, per artifactId strumenti ai bambini, abbiamo bisogno groupId valore impostato anche al di fuori della sezione padre pure (anche se la di genitore artifactId della sezione groupId è uguale/diverso di strumenti-bambino groupId).

<groupId>com.company.product</groupId> 
<artifactId>tools-parent</artifactId> 
<version>0.0.7-SNAPSHOT</version> 
<packaging>pom</packaging> 

<description> 
    Infrastructure related to the &quot;vapp&quot; and 
    &quot;deployer&quot; utilities. 
</description> 

<parent> 
    <groupId>com.company.product</groupId> 
    <artifactId>deploy-parent</artifactId> 
    <version>0.0.6-SNAPSHOT</version> 
</parent> 

- O

. Tornare alla versione-maven-plugin: 2,1

+0

Siamo tornati alla versione 2.1 e funziona bene, proprio come prima ... – BlackEye

14

solo per aggiungere alla parte 2 della risposta di Arun, il modo di utilizzare la versione 2.1 di il plug-in è:

mvn org.codehaus.mojo:versions-maven-plugin:2.1:set org.codehaus.mojo:versions-maven-plugin:2.1:commit -DnewVersion=0.0.7 

È necessario specificare l'id di gruppo completo e l'id artefatto.

+1

GRAZIE MOLTO !!!! – t0r0X

+0

Funziona come un fascino e non ha bisogno di alcuna modifica nel pom. Grazie per questo – PierreF

1

Mi sono imbattuto in un NPE ma si scopre che il motivo era diverso da suggested earlier. Ho eseguito il debug delle versioni-maven-plugin e ho scoperto che l'NPE era causato da una dichiarazione mancante di <version> di una dipendenza nell'elenco di <dependencyManagement>. Questo può essere riprodotto con il seguente elenco:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 
    <groupId>com.example</groupId> 
    <artifactId>npe</artifactId> 
    <version>0.0.1-SNAPSHOT</version> 
    <name>NPE Example</name> 

    <dependencyManagement> 
     <dependencies> 
      <dependency> 
       <groupId>org.springframework</groupId> 
       <artifactId>spring-context</artifactId> 
       <!-- missing <version>4.2.0.RELEASE</version> --> 
       <scope>runtime</scope> 
       <exclusions> 
        <exclusion> 
         <groupId>commons-logging</groupId> 
         <artifactId>commons-logging</artifactId> 
        </exclusion> 
       </exclusions> 
      </dependency> 
     </dependencies> 
    </dependencyManagement> 

    <dependencies> 
     <dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-core</artifactId> 
      <version>4.2.0.RELEASE</version> 
     </dependency> 
    </dependencies> 
</project> 
Problemi correlati