2011-03-16 28 views
0

它使用包含多個模塊的maven構建現有的EAR。 我們有一個EAR項目,其中包含網站和jar項目,共有8個項目。 耳朵是使用RAD構建的,因此目前該項目沒有POM文件。 現在我想爲項目使用maven。 我想用m2eclipse來創建POM和構建。 plannig創建父項目並在其下創建模塊,其中包括ear項目和其他項目。 所以有效的結構應如下使用Maven2構建現有的EAR

工作區

>parent proj 

      >ear project 

      >web proj 

      >jar1 proj 

      >jar2 proj 

,但我有一個包含所有的項目,如果我導入工作空間耳它所有的項目創建flate結構如下圖EAR文件

工作區

>web proj 

>jar1 proj 

>jar2 proj 

關注的是監守RAD項目設置,並通過它在工作區中創建.metadata文件。 如果我在工作區中創建父項目,然後在父項中導入它的問題。 請告知我如何能做到以下

1>添加父項目的間接和它下面有耳朵的所有項目

2>如何在其下在構建時

保存所有模塊父添加耳朵項目

希望我的情況和需求量的清晰 請告知其

感謝 納拉揚

回答

1

你不應該IMPO將耳朵插入父項目中,父母應該將耳朵引用爲其pom中的模塊,並且在父代中顯示爲子目錄。
也許我不清楚你的意思是進口
模塊在父pom中聲明的順序是它們的構建順序,所以ear應該是列表中的最後一個模塊,因爲它具有jar1,jar2和web模塊作爲依賴關係。
Web應該是列表中倒數第二個模塊,因爲它可能取決於jar1或jar2或兩者。

M2Eclipse能夠將上面描述的多模塊項目結構導入爲工作空間內的單獨項目,選擇此選項可以避免您必須通過父項目工作在每個單獨的模塊上,並一直向下擴展。
這不會更改磁盤上的嵌套結構,它只是將各個模塊顯示爲各自的項目,並且模塊目錄也在父項目中可見。
它還允許每個模塊單獨構建,或者可以通過構建父項目來執行完整的構建。

閱讀關於maven reactor在this question

我建議你解決之前,你的主要項目嘗試了一個快速原型,見http://docs.codehaus.org/display/MAVENUSER/Archetypes+List

由Matt Raible的AppFuse的原型是真的很好的例子,從工作,嘗試下面的命令來創建一個骨架結構:

mvn org.apache.maven.plugins:maven-archetype-plugin:2.0:generate -DgroupId=com.test.archetest -DartifactId=archetest -DarchetypeArtifactId=appfuse-modular-jsf -DarchetypeGroupId=org.appfuse.archetypes

看一看一般項目結構,然後使用m2eclipse的,這將產生Eclipse項目文件.. 您也可以通過mvn eclipse:eclipse做到這一點導入,但不會爲您提供工作區中的單獨模塊。 有些項目選擇不提交eclipse項目文件,而是通過上述任一方法從pom生成。

如果你使用上面給出的原型的結構,那麼你需要添加一個ear模塊到父項目,這可以通過M2Eclipse完成。

+0

請在下面添加1> does not maven reactor負責構建訂單2>通過導入我的意思是,我有一個包裝的耳朵,其中包含所有項目的源代碼...我可以在工作區導入並向所有人添加poms項目..我想添加家長到所有這些項目我該怎麼做。 – nBhati 2011-03-16 20:14:11

1

感謝@crowne

,而不是分層結構的,我可以用模塊的方式。

包裹所有現有的項目,創建在同一工作區包裝類型POM 然後現有的項目可以被添加作爲模塊,如下的行家項目

../module1

../module2

../module3

指定的路徑總是相對於聲明模塊的pom的位置。