精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2011-01-25
最后修改:2011-01-25
为了正统,我直接到Apache/Sonatype上去找资料,发现Sonatype(http://www.sonatype.com/)所提供的文档最为劲爆,很快就可以掌握Maven的使用,其中的Sonatype-maven-by-example.pdf最为直接,从单个简单项目到多项目管理,再到多项目管理的优化,无所不谈,我相信大家通过这个文档的系统学习,肯定能跟我那样,入门绝对不是问题。 我所用到的插件,拿出来晒一下,好做交流,其实用的还是很基本的能力: 1、maven-surefire-plugin:单元测试用。用法举例: <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <version>2.6</version> <configuration> <parallel>methods</parallel> <skipTests>true</skipTests> </configuration> </plugin> 2、maven-compiler-plugin:编译插件,方便指定目标JDK版本,以及其他一些编译细节。用法举例: <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>2.3.2</version> <configuration> <source>1.6</source> <target>1.6</target> </configuration> </plugin> 3、maven-antrun-plugin:跑ant脚本的插件,如果原来的ant脚本还有用武之地或者有些工作还是喜欢ant来帮忙的话。用法举例: <plugin> <artifactId>maven-antrun-plugin</artifactId> <version>1.6</version> <executions> <execution> <phase>generate-sources</phase> <configuration> <target name="copy-beans" description="--> copy necessary beans from application"> <echo message="copy beans from application artifact"/> <copy todir="${beans.copy.to.dir}"> <fileset dir="${beans.copy.from.dir}"> <include name="**/Resource.java" /> <exclude name="**/*.xml" /> </fileset> </copy> </target> </configuration> <goals> <goal>run</goal> </goals> </execution> </executions> </plugin> 因为我们设计一个applet的子项目,需要拷贝一些资源过来,而不是造成交叉依赖——大家说不定有更好的办法。 4、maven-war-plugin:webapp的必备插件,用来打包war。用法举例: <plugin> <artifactId>maven-war-plugin</artifactId> <version>2.1.1</version> <configuration> <!-- exclude those which shared lib <packagingExcludes> WEB-INF/lib/nric-framework*.jar, WEB-INF/lib/spring-core*.jar, WEB-INF/lib/spring-asm*.jar, WEB-INF/lib/commons-*.jar, WEB-INF/lib/spring-aop*.jar, WEB-INF/lib/aopalliance*.jar, WEB-INF/lib/spring-beans*.jar, WEB-INF/lib/spring-context*.jar, WEB-INF/lib/spring-orm*.jar, WEB-INF/lib/spring-tx*.jar, WEB-INF/lib/ibatis*.jar, WEB-INF/lib/oracle*.jar, WEB-INF/lib/jcl-over-slf4j*.jar, WEB-INF/lib/slf4j-*.jar, WEB-INF/lib/javassist*.jar, WEB-INF/lib/aspectjrt*.jar, WEB-INF/lib/aspectjweaver*.jar, WEB-INF/lib/spring-jdbc*.jar, WEB-INF/lib/log4j*.jar, WEB-INF/lib/quartz*.jar, WEB-INF/lib/cglib*.jar, WEB-INF/lib/asm-*.jar, WEB-INF/lib/joda-time*.jar </packagingExcludes>--> <!-- Use this to include a selection of jars that will be included in the WAR --> <!-- <packagingIncludes> **/*.xml,**/*.properties,**/*.class,**/*.png,**/*.css,**/*.js,**/*.jsp, WEB-INF/lib/spring-web*.jar </packagingIncludes> --> <archive> <manifest> <addClasspath>true</addClasspath> <classpathPrefix>lib/</classpathPrefix> </manifest> </archive> </configuration> </plugin> 注意:我注释掉的部分一般用来做war减肥用,如果需要打包为ear的话 5、org.mortbay.jetty:jetty调试插件,用来启动web做集成测试、调试用。用法举例: <plugin> <groupId>org.mortbay.jetty</groupId> <artifactId>jetty-maven-plugin</artifactId> <version>7.0.1.v20091125</version> <configuration> <scanIntervalSeconds>10</scanIntervalSeconds> <webAppConfig> <contextPath>/nric-demo</contextPath> </webAppConfig> </configuration> </plugin> 我觉得用插件的精髓是不在于多在于合适。希望大家也来分享下。 另外,关于私服问题,我的看法是有条件上没条件就免了,可选。 补充几点心得: 1、建议在parent的pom中使用好pluginManagement和dependencyManagement,而子项目引用即可; 2、使用参数,方便管理版本和重要参数; 3、明显不用的dependency要exclude掉(使用exclusion),避免过多垃圾; 4、合理设置子项目 附上Sonatype-maven-by-example.pdf。 ——说明:版权完全为Sonatype所有,并敬请大家通过正式渠道下载最新版。 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2011-01-26
这也是常用的插件
jetty这个lz是怎么调试debug的? |
|
返回顶楼 | |
发表时间:2011-01-26
mgcnrx11 写道 这也是常用的插件
jetty这个lz是怎么调试debug的? 1. 安装个Sonatype的m2eclipse update site: http://m2eclipse.sonatype.org/sites/m2e 2. 然后在DEBUG配置一个Maven build. Debug configurations...->Maven build->new: Goals是:jetty:run 后面的调试跟启动其它(如tomcat)的调试过程一样。 |
|
返回顶楼 | |
发表时间:2011-01-26
itstarting 写道 mgcnrx11 写道 这也是常用的插件
jetty这个lz是怎么调试debug的? 1. 安装个Sonatype的m2eclipse update site: http://m2eclipse.sonatype.org/sites/m2e 2. 然后在DEBUG配置一个Maven build. Debug configurations...->Maven build->new: Goals是:jetty:run 后面的调试跟启动其它(如tomcat)的调试过程一样。 可以看看这个:http://obullxl.iteye.com/blog/715207 |
|
返回顶楼 | |
发表时间:2011-01-27
直接用myeclipse的,带了m2的支持。用着挺爽的。
当然myeclipse是中国特色版 |
|
返回顶楼 | |
发表时间:2011-01-27
huhuanqadn 写道 直接用myeclipse的,带了m2的支持。用着挺爽的。
当然myeclipse是中国特色版 哈哈,还特色版 我电脑里有正版的,是公司concurrency license的版本,一般不用——没啥用 |
|
返回顶楼 | |
发表时间:2011-01-27
再推荐俩
cobertura,生成测试覆盖率报告的 cargo,自动部署到远程服务器的 |
|
返回顶楼 | |
发表时间:2011-01-27
unsid 写道 再推荐俩
cobertura,生成测试覆盖率报告的 cargo,自动部署到远程服务器的 第一个有点意思,学习下 第二个感觉意义不大,真部署的话,还是手动部署的放心,而平时顶多就是集成调试下 |
|
返回顶楼 | |
发表时间:2011-01-27
maven-dependency-plugin
maven-archetype-plugin maven-assembly-plugin |
|
返回顶楼 | |
发表时间:2011-01-27
用maven真方便
|
|
返回顶楼 | |