2011-09-12 13 views
14

Maven-warpath-plugin available here'u kullanmaya çalışıyorum. Ama benim pom.xml dosyasında şu hatayı yazan bir hata alıyorum:Eklenti hatası: Yürütme, yaşam döngüsü yapılandırması kapsamında değil

Plugin execution not covered by lifecycle configuration: org.appfuse.plugins:maven-warpath-plugin:2.1.0:add-classes (execution: default, phase: generate-sources)

Bunu nasıl çözebilirim?

<plugin> 
    <groupId>org.appfuse.plugins</groupId> 
    <artifactId>maven-warpath-plugin</artifactId> 
    <version>2.1.0</version> 
    <extensions>true</extensions> 
    <executions> 
     <execution> 
      <goals> 
       <goal>add-classes</goal> 
      </goals> 
     </execution> 
    </executions> 
</plugin> 

Eclipse bana bu hatayı gidermek için "yeni M2E konektörler keşfetmek" için bir quickfox ucu sunmaktadır: Burada eklenti için benim pom.xml pasajıdır. Uygulanan bağlantıların çoğunu yükledim ama hata hala var. Bu işi nasıl yapabileceğime dair bir fikrin var mı?

cevap

29

Bu yeni behaviour m2'idir (eski m2eclipse eklentisinin yerini almıştır). Eklenti ile eklentinin ne yapması gerektiğini belirlemek için, projenin pom.xml'sinde yaşam döngüsü eşlemesini yapılandırmanız gerekir - veya varsa (eğer eklentinin bir tutulma düzeninde yürütülmesi gerekip gerekmediğine karar verir) bir bağlayıcı takın.

Maven-warpath eklentisi için bağlayıcı olmasa da, pompanın davranışını tanımlamanız gerekir. Bunun için ikinci tutulma özetini kullanabilirsiniz (eclipse derlemesinde yok sayıldıkça pom.xml'deki hedef ekleme sınıflarını hedef olarak işaretleyin). Bu pom için aşağıdaki bölümü ekleyecektir: Her tutulma yapı eklentiyi işlemek istiyorsanız

<build> 
    ...... 
    <pluginManagement> 
     <plugins> 
      <!--This plugin's configuration is used to store Eclipse m2e settings 
       only. It has no influence on the Maven build itself. --> 
      <plugin> 
       <groupId>org.eclipse.m2e</groupId> 
       <artifactId>lifecycle-mapping</artifactId> 
       <version>1.0.0</version> 
       <configuration> 
        <lifecycleMappingMetadata> 
         <pluginExecutions> 
          <pluginExecution> 
           <pluginExecutionFilter> 
            <groupId> 
             org.appfuse.plugins 
            </groupId> 
            <artifactId> 
             maven-warpath-plugin 
            </artifactId> 
            <versionRange> 
             [2.1.0,) 
            </versionRange> 
            <goals> 
             <goal>add-classes</goal> 
            </goals> 
           </pluginExecutionFilter> 
           <action> 
            <ignore></ignore> 
           </action> 
          </pluginExecution> 
         </pluginExecutions> 
        </lifecycleMappingMetadata> 
       </configuration> 
      </plugin> 
     </plugins> 
    </pluginManagement> 
</build> 

Sen (import, clean üzerine, ...) <execute> için <ignore> eylemi değiştirebilir.

eklenti yapılandırma özgü gölgede ve pom.xml güzel görünmesini yapmaz - ama en azından Maven üzerinde hiçbir etkisi oluşturmak ....

+0

@FrVaBe bkz sahiptir Bunun için ikinci tutulma çabukluğu yapar (Eclipse yapısında yok sayıldığı gibi pom.xml'deki hedef eklenti sınıflarını işaretleyin). web uygulama yürütümü etkileyebilir? –

+0

@Amira Manai Bu maven yapı üzerinde hiçbir etkisi olmadığı için infazını etkilememelidir. – FrVaBe

+0

Testlerimde görebildiğim kadarıyla, bu yaklaşım Maven derlemesinden maven-warpath-plugin'i atlamıyor, değil mi? Demek istediğim, ana savaşımdaki bir bağımlılık olarak, bir warpath yapı yolunu almayı bekliyorum. –