心得:这几天一直在研究maven的配置,还真是伤心啊,网上资料不多,而且问题不断.确实很让人头疼
背景:之所以学习maven是因为我们需要一键部署,我们项目是已经差不多完成了,是eclipse的web项目,需要将它变成maven项目
问题:
1.拆分项目为多个模块解决循环依赖
如果一个web项目下面有A,B,C三个模块,各个模块互相依赖,这是maven会提示,这是一个循环依赖,而不能正常编译项目.
解决办法:http://hck.iteye.com/blog/1728329
但是建议最好模块分清楚
2.怎样项目使用本地的lib当中jar包,而不是maven仓库
我是使用这种:
<dependency>
<groupId>asm-attrs</groupId>
<artifactId>asm-attrs</artifactId>
<version>3.1</version>
<scope>system</scope>
<systemPath>D:/eclipse/keplerworkspace/pmis/src/main/webapp/WEB-INF/lib/asm-attrs.jar</systemPath>
</dependency>
maven的scope提供几种类型,其中system表示不从maven仓库中找,systemPath表示jar包的地址, 其他可以随便填,但是,请注意不要和maven仓库的路径一样
网上也有使用插件的方式,我也试过了,但是没有成功
3.多个jar包组成一个jar
<plugin>
<groupId>com.jolira</groupId>
<artifactId>onejar-maven-plugin</artifactId>
<version>1.4.</version>
<executions>
<execution>
<configuration>
<attachToBuild>true</attachToBuild>
<classifier>onejar</classifier>
</configuration>
<goals>
<goal>one-jar</goal>
</goals>
</execution>
</executions>
</plugin>
<dependencies>
<dependency>
<groupId>com.fbi</groupId>
<artifactId>fbi-core</artifactId>
<version>0.0.-SNAPSHOT</version>
</dependency>
</dependencies>
这个可以是你的java项目打包成一个可以运行的jar包,但是别忘记加入依赖哦, , , 这个是针对java项目的
4.多web项目合并
<build>
<finalName>bpmcenter</finalName>
<plugins>
<!-- 合并多个war -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<configuration>
<packagingExcludes>WEB-INF/web.xml</packagingExcludes>
<overlays>
<overlay>
<groupId>com.founder.fix.fixflow</groupId>
<artifactId>fixflow-webapp-taskcenter</artifactId>
</overlay>
</overlays>
</configuration>
</plugin>
</plugins>
</build>
可以百度一下overlay,这里可以填入多个要合并的项目,只要加入项目的groupId就行,但是也要加入依赖哈
推荐地址:http://www.tuicool.com/articles/ArE3iaA
但是我试过了,如果两个项目之间有依赖的话,会报错说找不到依赖的类,所以如果你要依赖于java的类的话,最好是将java类做为一个公共的东西,然后大成jar包让web项目使用,实际上就是加入dependency就可以咯