天天看点

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在自动打包这方面的来说挺好的, 然后用它管理多项目工程,一次升级处处有效,这样的确可以带来很好的管理模式。不过如果只是快速搭建工程,没有这个必要。