3
我看了這個問題上的SO - How to add WAR inside EAR with Maven爲什麼在生成ear文件時使用父文件?
在頂部的「joelittlejohn」投票的答案 -
「現在創建一個父模塊(帶POM),並添加 戰爭模塊和耳模塊確保你設置了戰爭和耳機模塊的父親 ,當你爲這個新父母運行mvn 包時,戰爭文件將由war 模塊構建,並且ear文件(包含戰爭)將會通過耳機 模塊構建「。
但爲什麼要創建一個父pom?爲什麼不僅僅用一個pom創建一個標準的maven項目呢?這個單獨的pom文件包含依賴項&模塊,然後從這個pom文件生成.ear文件?
喜歡的東西:
<plugin>
<artifactId>maven-ear-plugin</artifactId>
<version>2.3.2</version>
<configuration>
<finalName>MyEarFile</finalName>
<version>5</version>
<generatedDescriptorLocation>${basedir}/src/main/application/META-INF</generatedDescriptorLocation>
<modules>
<webModule>
<groupId>com.your.group.id</groupId>
<artifactId>your-war-artifact</artifactId>
<uri>YouWarFile.war</uri>
<bundleFileName>YouWarFile.war</bundleFileName>
<contextRoot>/appname</contextRoot>
</webModule>
</modules>
</configuration>
<dependencies>
<dependency>
<groupId>com.your.group.id</groupId>
<artifactId>your-war-artifact</artifactId>
<version>your-war-version</version>
<type>war</type>
</dependency>
</dependencies>
</plugin>
家長pom包裝在一起,孩子pom不包含在內? – 2012-03-08 19:53:47
取決於您使用的功能。它可以讓你有一大堆適用於所有子模塊的配置。例如:依賴管理,資源過濾,構建任務的插件等。它還允許您一次釋放所有模塊。一個沒有子模塊的大型POM的缺點是,你的任何子模塊都不能單獨使用。所以如果你有一個你想在其他地方使用過的jar的項目(比如說你爲一個帶有一些接口的webservice定義了一個apis模塊),你可能希望其他項目引用該模塊。 – Michael 2012-03-08 19:56:31
謝謝,在上面的例子中,當創建ear的所有pom定義都包含在子pom中時,是否使用父/子層次結構來創建ear文件是多餘的? – 2012-03-08 20:04:24