最近学习在eclipse3.6环境下用maven2构建一个多模块的项目
分core/dal/dao/web四块,当运行tomcat web工程调试需要把core/dal/dao的工程先mvn install一下,才能提交更新,反复折腾以后总结出几条很有用的讯息,希望和我一样刚接触maven的朋友不要再走错路.在百度和google查了好几天也没有完整的资料,最后还是自己想到办法了.
方法一:
tomcat
- 首先将maven web工程转为eclipse wtp工程(网上搜一下),一般说来到maven工程目录下执行命令行mvn eclipse:eclipse -Dwtpversion=2.0即可.
- 将工程添加到tomcat server中
- 添加其它工程的引用
- 因为tomcat插件publish的内容是src/main里的,所以web-inf/lib的外部包需要手动拷到插件运行的目录,插件运行目录我的是在D:/EclipseWorkspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp/wtpwebapps/my-web
- 运行tomcat,在其它dao等工程做的修改,tomcat会自动reload了.
方法二.jetty
鉴于第一种方式需要手动拷jar的,我可受不了.于是最终选择jetty插件,就目前来看是用得最爽的.
1.在pom.xml加入jetty插件信息
- <build>
- <finalName>myweb</finalName>
- <plugins>
- <plugin>
- <groupId>org.mortbay.jetty</groupId>
- <artifactId>maven-jetty-plugin</artifactId>
- <version>6.1.12</version>
- <configuration>
- <!-- 热加载扫描间隔秒数 -->
- <scanIntervalSeconds>5</scanIntervalSeconds>
- <stopKey>/</stopKey>
- <stopPort>9999</stopPort>
- <!-- 额外扫描的class路径 -->
- <scanTargets>
- <scanTarget>D:/EclipseWorkspace/myweb/myweb-dal/target/classes</scanTarget>
- <scanTarget>D:/EclipseWorkspace/myweb/myweb-core/target/classes</scanTarget>
- </scanTargets>
- <webAppConfig>
- <contextPath>/</contextPath>
- <!-- jetty配置文件 -->
- <defaultsDescriptor>src/main/resources/webdefault.xml</defaultsDescriptor>
- <!-- 引用其它工程的class -->
- <extraClasspath>D:/EclipseWorkspace/myweb/myweb-core/target/classes;D:/EclipseWorkspace/myweb/myweb-dal/target/classes</extraClasspath>
- </webAppConfig>
- </configuration>
- </plugin>
- </plugins>
- </build>
2.配置eclipse run configurations
在goals中填写jetty:run -e -q
run as -> Maven build就可以运行web工程以及布署和调试,最大的好处,修改无需重启jetty.