天天看點

Myeclipse中maven多項目搭建總結

剛剛完成了一個将已有的工程分解成三個子工程的任務,在網上查資料遇到了無數的坑,終于自己都填完了。 PS:這個工程使用的是Spring架構。

這是四個工程的結構:

這個任務的最終目标是:分解好後使用Nginx将不同的請求分發到單獨的工程中,使用Hazelcast分享session資料,這樣就将一個工程分解成了四個,降低了系統間的耦合。

Myeclipse中maven多項目搭建總結

首先要明白,不要在意網上說的 動态工程(Dynamic Web Module)! 現在建起來的基本都是動态工程,随便向tomcat裡發,隻要選擇webapp就可以。 使用JDK1.6打包,經常會出現 jvm堆溢出的錯誤,如果java類過多,如何更改編譯使用的記憶體都沒辦法消除這個錯誤。不過如果更改JDK版本使用1.7或1.8則會沒事。 更改maven工程有使用的JDK 有三個位置,這 三個位置的JDK版本一定要保持一緻

項目--右鍵--屬性-->

Java Build Path--檢視jdk版本

Java Compiler  -- 檢視版本

Project Facets -- 檢視java版本

1.建立工程 建立一個maven project proA(Myeclipse裡有兩個Maven project選項,選擇哪個都一樣),三個Maven module,我嘗試的方法中隻有這樣才能使proA 作為三個modules的parent。 四個項目都要選擇webapp( 在建立Maven Project 如果出不來可選擇Maven項目,稍等即可,這是在和網絡上進行同步。) 因為我隻是拆開工程,建好之後隻要将src下的檔案導入到的main/java中,工程名下的所有檔案拷入到main/webapp(隻要這樣就可以,不需要test下也有相同的結構,有沒有test也無所謂),拷完之後記得改web.xml裡面使用的工程名。 建立proA後,要先将proA的pom.xml裡面的packing改為pom,這樣才可以使proA成為其餘三個的父親

<packaging>pom</packaging>           

2.打包:

Maven打包時的jvm參數修改

Myeclipse中maven多項目搭建總結

在pom裡增加如下的build内容,這樣使maven在編譯時可以使用本地的jar包

<build>              <finalName>bpfactory</finalName>              <plugins>              <plugin>              <artifactId>maven-compiler-plugin</artifactId>              <version>2.3.2</version>              <configuration>              <source>1.6</source>              <target>1.6</target>              <encoding>UTF-8</encoding>              <compilerArguments>              <extdirs>src\main\webapp\WEB-INF\lib</extdirs>              </compilerArguments>              </configuration>              </plugin>              </plugins>              </build>           

如果提示javax不存在的話就将tomcat目錄下lib裡的servlet-api.jar放入JDK目錄下的\jre\lib\ext檔案夾中。

Myeclipse中maven多項目搭建總結

因為web工程和waven工程不一樣,是以我建議直接将編譯目錄改為target/dcase/WEB-INF/classes,這樣編譯的class直接放入了工程中。這樣再build就隻是一個複制的過程。 最後,按我的方式打包使用build就可以

Myeclipse中maven多項目搭建總結

因為隻研究了一個星期,隻涉及了工程搭建,沒有涉及到jar包的繼承和各種花式打包。老闆說他有一萬種方式給工程更新,是以o(╯□╰)o

個人覺得maven在自動打包這方面的來說挺好的, 然後用它管理多項目工程,一次更新處處有效,這樣的确可以帶來很好的管理模式。不過如果隻是快速搭建工程,沒有這個必要。