2016-06-30 8 views
5

Ich möchte Maven überzeugen, "weiterzumachen, wo es aufgehört hat". Ich mache zuerst eine mvn package, um das Paket zu bauen. Zu einem späteren Zeitpunkt möchte ich vielleicht den Lebenszyklus fortsetzen, um den Integrationstest usw. durchzuführen, indem ich eine mvn install tue. In diesem Fall würde ich Maven vorziehen, den Lebenszyklus nicht von vornherein neu zu beginnen, sondern tatsächlich in der ersten Phase nach package (d. H. pre-integration-test) fortzusetzen. Ist es möglich, den Lebenszyklus in einer anderen Phase als der ersten zu starten?Kann ich einen Maven-Lebenszyklus von einer Arbitrary-Phase wieder aufnehmen?

+1

Ich glaube nicht, dass Sie das tun können. [Siehe auch diese Mail] (http://maven.40175.n5.nabble.com/Execute-only-a-specific-phase-td103134.html). – Tunaki

+0

ich weiß, dass mvn install tun: "validieren", "kompilieren", "packen" und "verifizieren" vor dem "installieren", so weiß ich eigentlich nicht, ob es möglich ist, dies zu überschreiben, sollte diese Einstellung überschreiben der einzige Weg sein – RudiDudi

Antwort

2

AFAIK, es gibt keine integrierte Funktionalität, die dies unterstützt. Sie können, tun jedoch die folgende:

alle Ziel-Bindungen überschreiben bis zu (ausschließlich) die vorgesehene Startphase, die aus folgenden Quellen:

  • default-bindings.xml
  • <build>/<plugins>/<plugin> Abschnitte des aktuellen und alle übergeordneten POMs (überprüfen Sie mit mvn help:effective-pom)

in ein profile wie:

<profiles> 
    <profile> 
     <id>resume-at-pre-int-test</id> 
     <build> 
      <plugins> 
       <plugin> 
        <groupId>com.soebes.maven.plugins</groupId> 
        <artifactId>maven-echo-plugin</artifactId> 
        <version>0.1</version> 
        <executions> 
         <execution> 
          <id>skip-process-resources</id> 
          <phase>process-resources</phase> 
          <goals> 
           <goal>echo</goal> 
          </goals> 
         </execution> 
        </executions> 
        <configuration> 
         <echos> 
          <echo>Default plugin:goal binding for process-resources phase overridden</echo> 
         </echos> 
        </configuration> 
       </plugin> 

       <plugin> 
        ... 
       </plugin> 

       ... 

      </plugins> 
     </build> 
    </profile> 
</profiles> 

Aktivieren Sie es mit mvn install -P resume-at-pre-int-test.

+0

Kann ich auch nur Ziele lösen? – Rinke

+0

@Rinke Nicht dass ich mir dessen bewusst bin. –

+0

@Rinke Nur eine Idee: Laut [dieser Antwort] (http://stackoverflow.com/a/30953905/1744774) können Sie versuchen, '/lib/maven-core-xyzjar/META zu optimieren -INF/plexus/default-bindings.xml' entsprechend, aber das habe ich selbst noch nicht ausprobiert. –

Verwandte Themen