Myeclipse中maven多項目搭建總結

剛剛完成了一個將已有的工程分解成三個子工程的任務,在網上查資料遇到了無數的坑,終於自己都填完了。
PS:這個工程使用的是Spring框架。
這是四個工程的結構:
這個任務的最終目標是:分解好後使用Nginx將不同的請求分發到單獨的工程中,使用Hazelcast分享session數據,這樣就將一個工程分解成了四個,降低了系統間的耦合。

首先要明白,不要在意網上說的動態工程(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參數修改


在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文件夾中。


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

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

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


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章