2011-08-09 47 views
2

我用maven使用eclipse。運行我的配置後,我總是執行相同的任務(清理項目,然後調試爲java應用程序)。有沒有辦法將這2個任務添加到maven配置中?maven eclipse自動化

感謝

+0

爲什麼你用Maven清理項目? Eclipse在文件更改時自動重建它。不需要清潔。 –

+0

當我運行我的maven配置,其中包括乾淨,安裝和android:部署,如果我調試爲'android應用程序沒有先清理項目,我得到這個錯誤:無法安裝* .apk設備'*':本地路徑不存在。我想找到一種方法來運行這個maven配置+清理項目+調試......一步到位,無論是使用操作系統技巧,日食技巧,maven技巧或任何可以解決此問題的方法。 – John156

+0

這真的很奇怪;部署應該做的安裝和安裝應該創建該文件,所以我不明白爲什麼「乾淨」將是必要的...請參閱我的答案下面如何用較少的點擊做到這一點。 –

回答

0

我不知道Maven的任何支持清潔Eclipse項目或調試的。 Eclipse提供了一些允許刷新工作空間或執行「乾淨」構建的Ant任務(請參閱http://help.eclipse.org/galileo/index.jsp?topic=/org.eclipse.platform.doc.isv/guide/ant_eclipse_tasks.htm)。這些Ant任務可能會與AntRunner一起使用,但這很難,因爲它們是Eclipse特有的,並且依賴於一些Eclipse插件。

不幸的是,我不知道既沒有Ant任務,也沒有Maven選項來執行運行配置(這是調試所必需的)...只需執行Java應用程序應該是可能的,但我不確定,應該是構建的一部分 - 在我看來,這實際上是一個不同的任務。

+0

我知道這不是同一個任務,但我仍然可以創建一個快捷方式,以便所有這3個操作一個接一個地執行,99%的時間是編譯我的應用程序,然後在調試模式下運行它。如果maven沒有提供,那麼也許可以使用eclipse工具來設置它? – John156

+0

不幸的是,除了在Java中編寫插件外,我不知道任何其他方式 - 但這可能意味着需要花費大量時間,因爲您必須瞭解Resources API(文件系統處理)和Launch配置(用於執行程序 - 這個API很難理解)。但我相信有可能以這種方式做你想做的事。 –

1

如果您的工作流程符合標準,Maven非常棒。

如果不是這種情況,最好的辦法是在工程中添加一個build.xml Ant構建文件,您可以使用它編寫「宏」以運行重複性任務。使用exec任務從Ant調用Maven。

如果使用Maven命令行選項可以實現所有功能,另一種方法是安裝m2eclipse plugin。這使您可以創建「啓動配置」,使用您想要的選項運行Maven。

「Common」選項卡允許您將啓動配置保存爲項目中的文件。您還可以將它作爲收藏夾添加到「運行」或「調試」菜單中。這樣,它始終保持在菜單中的相同位置,這使得使用鼠標或組合鍵更簡單。

[編輯]您不能從Maven或Ant啓動調試器,但您可以執行其他三個步驟。創建一個Maven啓動配置(運行... - >運行配置... - >選擇Maven - >新(+)「),並把clean install android:deploy中的字段Goals

運行這三個按順序。上述其他意見,使這個更舒適

[EDIT2]你需要一個宏延長看到這個問題:。Is there a Macro Recorder for Eclipse?

也可以考慮使用兩個目標目錄,一個用於Eclipse,另一個對Maven 。如果您運行mvn clean,則始終會混淆不會刷新bin或中的文件的Eclipse由於沒有人應該寫在那裏,但Eclipse本身。見How to configure Maven project to use separate output folders in Eclipse

複製這裏的重要位,以避免損壞的鏈接:

<project> 
    ... 

    <build> 
    <outputDirectory>${basedir}/${target.dir}/classes</outputDirectory> 
    <testOutputDirectory>${basedir}/${target.dir}/test-classes</testOutputDirectory> 
    </build> 

    <properties> 
    <target.dir>target</target.dir> 
    </properties> 

    <profiles> 
    <profile> 
     <id>eclipse-folders</id> 
     <properties> 
     <target.dir>target-eclipse</target.dir> 
     </properties> 
    </profile> 
    </profiles> 
    ... 
+0

對不起,被誤解了,但這已經完成了。我現在想做的是在完成這個maven任務後執行兩個正常的eclipse任務:一個「乾淨的項目」和一個「作爲android應用程序調試」。因此,只需要1個快捷方式就可以完成這3個任務(運行Maven配置,即'clean install android:deploy',清理項目,'調試爲android應用程序')。 – John156

+0

不要對Eclipse和Maven使用相同的目標文件夾;那應該解決你的問題。看到我的第二次編輯。 –

+0

謝謝,有兩個目標目錄解決了'乾淨'的問題。儘管我仍然需要一種方法來完成2個任務,其中一個正在運行maven配置(clean,install,android:deploy),另一個正在運行'debug as ... android應用程序。除了宏,沒有其他解決方案嗎?如果沒有,那麼如何用宏編輯器來做到這一點,比如「幾乎宏觀」? – John156

0

這似乎是工作,不是最優化的解決方案,需要在此

第一步m2eclipse插件被添加的maven-ant-運行插件到你的pom。XML,如果你看一下插件配置,它被設置編譯階段

<plugins> 
    <plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-antrun-plugin</artifactId> 
    <version>1.6</version> 
    <executions> 
     <execution> 
      <phase>compile</phase> 
      <goals> 
       <goal>run</goal> 
      </goals> 
      <configuration> 
       <target> 
        <property name="runtime_classpath" refid="maven.runtime.classpath"/> 
        <java classname="main class name"> 
         <classpath> 
          <pathelement path="${runtime_classpath}"/> 
         </classpath> 
        </java> 
       </target> 
      </configuration> 
     </execution> 
    </executions> 
    </plugin> 
</plugins> 

從Eclipse中調試菜單後執行這個插件選擇調試配置

Maven構建==>新==>添加清潔編譯目標(單擊「瀏覽工作空間」選擇工作空間)

如果您單擊調試,它將帶來調試透視圖,並且還會在您的應用程序中引發第一個中斷點。它雖然沒有找到源代碼,但是如果你點擊編輯源代碼查找按鈕並選擇工作區,它似乎可以讓你看到源代碼。

+0

我也安裝了m2eclipse。我試圖做你說的,但沒有按預期工作。也許這是因爲它不只是一個Java應用程序,而是一個Android應用程序?我的maven配置包括clean,install和android:deploy,然後我想做一個java clean的項目,然後調試android應用程序。我希望所有這3個操作(maven config + clean + debug as)一步完成,但乾淨的編譯不會啓動應用程序(即使在非調試模式下也不會)。 – John156

+0

只要你可以使用eclipse在調試模式下運行這個應用程序,我不認爲你應該在哪裏部署應用程序。我想知道是否正在調用maven-ant-run,你可以在m2eclipse中測試這個正在運行的編譯插件,在目標標籤後面加上這個echo命令:,如果ant -run正在運行,你應該看到這一點出來了[回聲]螞蟻運行插件正在執行。 –

+0

你好,再次抱歉,我有一個更迫切的問題要解決。所以我試着,它確實顯示一條消息。我應該從上面的代碼片段改變什麼?特別是,在中插入什麼,因爲我沒有公共靜態void main(String []),這是android應用程序。另外,我可以在哪裏添加,當maven任務完成時,我想要一個'乾淨'和'調試爲android應用程序'? – John156