2013-03-21 59 views
0

我使用eclipse來管理maven項目。maven目標,編譯和部署到服務器

在這個項目中,我有一個特殊的插件,它在產生,ressources階段創建文件的POM:

<plugin> 
    <groupId>org.eclipse.acceleo</groupId> 
    <artifactId>maven</artifactId> 
    <version>3.2.1</version> 
    <executions> 
     <execution> 
      <phase>generate-resources</phase> 
      <goals> 
       <goal>acceleo-compile</goal> 
      </goals> 
     </execution> 
    </executions> 
</plugin> 

我有聯繫這個插件目標偏食生命週期日食編譯過程中執行它:

<plugin> 
    <groupId>org.eclipse.m2e</groupId> 
    <artifactId>lifecycle-mapping</artifactId> 
    <version>1.0.0</version> 
    <configuration> 
     <lifecycleMappingMetadata> 
      <pluginExecutions> 
       <pluginExecution> 
        <pluginExecutionFilter> 
         <groupId>org.eclipse.acceleo</groupId> 
         <artifactId>maven</artifactId> 
         <versionRange>[3.2.1,)</versionRange> 
         <goals> 
          <goal>acceleo-compile</goal> 
         </goals> 
        </pluginExecutionFilter> 
        <action> 
         <execute /> 
        </action> 
       </pluginExecution> 
      </pluginExecutions> 
     </lifecycleMappingMetadata> 
    </configuration> 
</plugin> 

當我做一個乾淨的項目,月食,該項目重新編譯,文件是Eclipse編譯過程中產生的好(我能找到它在目標目錄)。

現在,我想在tomcat服務器上部署我的webapp。我使用eclipse的服務器視圖創建了一個tomcat服務器,並將該項目拖放到此服務器中以同步和發佈它。

該項目部署良好,我可以啓動服務器並測試我的應用程序。

,但是這需要由Maven插件發佈操作中不要複製生成的文件...

所以我的問題是:爲什麼通過一個Maven插件生成的文件日食過程中產生良好編譯但在eclipse的自動服務器管理的發佈/同步操作期間未在服務器上部署?

+0

我假設你只在pluginManagement區域添加了插件。 – khmarbaise 2013-03-21 09:07:06

+0

不,它在構建/插件中定義 – 2013-03-21 09:11:36

回答

0

答案是在你的問題中,因爲你配置插件只在日食生命週期中運行,但是你錯過了將增量添加到你的構建生命週期。

+0

我不明白,你是什麼意思將執行添加到構建生命週期?我正在考慮執行(階段生成資源)標籤在這裏。 – 2013-03-21 09:12:44

+0

這僅適用於Eclipse,但不適用於Maven。 – khmarbaise 2013-03-22 08:31:26

0

據我所知,您的webapp的發佈是由eclipse wtp工具完成的。

要配置這個(部署到服務器的東西)看看這個question和相應的答案。

簡而言之:我認爲您需要配置生成的文件(來自目標目錄)在wtp部署您的應用程序時也會被複制。

+0

嗯,鏈接很有趣,因爲它是說它使用部署描述符而不是目標目錄來部署文件。所以,在轉移過程中該文件被忽略... – 2013-03-21 09:13:38