2008-12-17 49 views
4

我們有一個相當大的Maven2項目組,其中一個根POM文件列出了10多個模塊和模塊使用的很多屬性(依賴版本號,插件配置,通用依賴關係等)。一些模塊像根項目一樣,是其他模塊組的父母。使用多模塊Maven項目,是否可以在Eclipse中使我的根(pom-packaged)項目可用?

爲了澄清,根項目和父項目設置爲pom包裝(而不是例如jar)。

因爲不同項目之間有很多依賴關係,所以我喜歡在根項目中使用mvn eclipse:eclipse,這使我可以隨時調試/步入任何項目。

但是,使用這種方法時,根目錄POM本身和所有其他pom打包的項目在Eclipse中不可用。所以,如果我想編輯它們,我必須以其他方式打開它們。這變得有點麻煩。

所以,我的問題是:是否有可能在Eclipse中以某種方式使pom打包項目可用?如果沒有,您是否有任何提示可以讓我對這些項目的工作更輕鬆?

爲了記錄,我正在使用MyEclipse 7.0。

+0

如果我將此作爲迴應說明,我只會被降級:netbeans和intellij Idea現在都具有*功能* maven集成,因此您可以直接從根目錄打開項目。 – krosenvold 2008-12-17 09:16:22

+0

如果你把它放在一個答案中,我會upvote :) – 2008-12-17 11:22:34

回答

2

我再次嘗試這個,加利略和最新版本的m2eclipse。現在可以直接導入Maven項目(不使用mvn eclipse:eclipse),並且事實證明,根POM也作爲項目導入,這是我想要的。

0

您可以嘗試編寫任務以手動爲其目錄中的每個POM項目創建.project文件。不確定的具體情況,但你可以產生類似的東西:

<?xml version="1.0" encoding="UTF-8"?> 
<projectDescription> 
     <name>${project.name}</name> 
     <comment></comment> 
     <projects> 
     </projects> 
     <buildSpec> 
     </buildSpec> 
     <natures> 
     </natures> 
</projectDescription> 

在項目的根目錄,它應該沒問題。 (你可能知道 - 你需要先導入你所有的non-pom項目,然後爲這個項目創建「general」項目)。其他人,路徑與mvn結構下的物理路徑匹配)。 Eclipse會阻止你在另一個項目中創建一個項目,所以如果它從項目層次結構中的更高級別識別出任何東西,那麼你將會在過去得到啓發。

0

我設法與codehaus eclipse plugin一起工作,有父母的maven項目。該插件有一些缺陷,但總體上它保持不變,你應該能夠相處。

1

好吧。許多人通過將父母POM作爲兄弟姐妹項目並在根中擁有簡單的反應器POM來做到這一點。但是,這可能會導致網站生成和發佈插件出現問題,因爲它們都不支持這種模式。

我們經常遇到的一個大問題是,人們試圖使用Subclipse來檢查幹線,Subclipse會在根目錄中添加一個.project文件,從而阻止導入低於該級別的項目。相反,我們必須出去檢查,然後導入項目。

我聽說過Subversive可能會更好地處理嵌套項目,這真的是這裏的問題。除此之外,我在這裏沒有絕對的解決方案。

0

通常我只需要真正需要在eclipse中可用的父項來添加依賴關係並利用XML格式。廉價而愉快的方式是創建資源項目並將父項鍊接到項目中。如果你使用2.8+版本的eclipse插件,你可以在每個子項目中爲你生成鏈接,例如:

<plugin> 
    <artifactId>maven-eclipse-plugin</artifactId> 
    <version>2.8-SNAPSHOT</version> 
    <configuration> 
     <linkedResources> 
      <linkedResource> 
       <name>parent.xml</name> 
       <type>1</type> 
       <location>${basedir}/${parent.relativePath}</location> 
      </linkedResource> 
     </linkedResources> 
    </configuration> 
    </plugin> 

雖然你現在需要從顛覆中檢查出它,並且自己構建它,因爲它似乎並不是從中央解決。

svn co http://svn.apache.org/repos/asf/maven/plugins/trunk/maven-eclipse-plugin/ 
cd maven-eclipse-plugin 
mvn clean install 
0

其實,如果你不希望依賴於m2eclipse的,「正確」的方式做到這一點是使用flat project layout(如問題是,Eclipse不支持嵌套項目)。

相關問題