2013-02-17 42 views
2

我有一個當前使用Ant的現有Web項目。我有一個任務:將項目從Ant移動到Maven並分解它

  • 創建基於僅適用於使用這個項目作爲一個依賴
  • 創建WAR文件的應用程序

和很多其他的其它應用某些包的jar 。

另外我有一個webservice項目,它使用由以前的應用程序構建的jar。這個項目使用Maven。

現在我想要實現的是將第一個項目移動到Maven,將其分解爲coreweb,然後將webservice項目移到第一個項目中。 那麼結果將是一個多模塊項目:

  • 核心
  • UI
  • web服務

是否有可能以移動處理網絡傳輸機制到UI來源模塊(這將是Maven的一場戰爭),還是我需要將源代碼保存在覈心中?

這樣做的最佳方法是什麼?

我應該看看Maven配置文件嗎?

我是Maven的新手,所以我不確定如何解決這個問題。

回答

2

是的你可以用Maven實現你想要的。我將打破模塊是這樣的:

核心

<groupId>com.myapp</groupId> 
<artifactId>core</artifactId> 
<version>1.0-SNAPSHOT</version> 
<packaging>jar</packaging> 

UI

<groupId>com.myapp</groupId> 
<artifactId>ui</artifactId> 
<version>1.0-SNAPSHOT</version> 
<packaging>war</packaging> 

<!-- Dependends on core --> 
<dependency> 
    <groupId>com.myapp</groupId> 
    <artifactId>core</artifactId> 
    <version>1.0-SNAPSHOT</version> 
</dependency> 

Web服務:

<groupId>com.myapp</groupId> 
<artifactId>ws</artifactId> 
<version>1.0-SNAPSHOT</version> 
<packaging>war</packaging> 

<!-- Also Dependends on core --> 
<dependency> 
    <groupId>com.myapp</groupId> 
    <artifactId>core</artifactId> 
    <version>1.0-SNAPSHOT</version> 
</dependency> 

主項目

<groupId>com.myapp</groupId> 
<artifactId>myapp</artifactId> 
<packaging>pom</packaging> 
<version>1.0-SNAPSHOT</version> 

<modules> 
    <module>core</module> 
    <module>ui</module> 
    <module>ws</module> 
</modules> 

然後,在覈心/ UI和Web服務聲明MYAPP作爲父:

<parent> 
    <groupId>com.myapp</groupId> 
    <artifactId>myapp</artifactId> 
    <version>1.0-SNAPSHOT</version> 
</parent> 

如需進一步信息請參考:

+0

是啊,這會是一個很好的解決方案,但我怎麼能真正打破我的代碼到核心服務器和Web?有幾個包只處理web東西(他們基本上是擴展/實現/處理struts類)。我想我會需要更多的模塊:核心,網絡(作爲jar),戰爭和web服務。你怎麼看? – Roberto 2013-02-18 20:04:05

+0

只需將「核心」軟件包移動到核心模塊即可。 UI或web(war模塊) - 擁有自己的src文件夾,用於web/struts特定的東西(只需聲明[struts]的正確依賴關係(http://mvnrepository.com/artifact/org.apache.struts) );類將能夠使用核心類(因爲UI聲明核心爲依賴項,包含核心類的jar文件將被maven複製到'/ WEB-INF/lib')。我的意思是,我沒有理由再介紹一個jar來保存struts邏輯。 – 2013-02-18 23:36:46

+0

謝謝安東尼,我會盡力實現你剛纔描述的,我的印象是我無法將源代碼添加到packaging = war中。 – Roberto 2013-02-20 12:52:05

相關問題