- 浏览: 219636 次
- 性别:
- 来自: 杭州
文章分类
最新评论
-
Wangwei86609:
非常好的规则引擎框架,支持决策树和多线程运行规则https:/ ...
规则引擎 -
hzxlb910:
真详细,收藏哈
maven setting.xml配置说明 -
东方胜:
[b][/b]
脚本语言 Tcl -
345161974:
hyw520110 写道345161974 写道这个Visua ...
Visual Tcl Binary 完整版(完美中文支持) -
hyw520110:
345161974 写道这个Visual Tcl Binary ...
Visual Tcl Binary 完整版(完美中文支持)
两个月前我只是一直知道有Maven,但从来没用过也没这个计划,直到我们的jar又多又乱,到了不理不行的地步的时候,我想到了Maven。
为了正统,我直接到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>
<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>
<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>
<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>
<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>
<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所有,并敬请大家通过正式渠道下载最新版。
- Sonatype-maven-by-example.pdf (3.9 MB)
- 下载次数: 791
发表评论
-
Maven Artifacts如何部署到仓库
2012-03-28 11:50 986http://www.blogjava.net/lishunl ... -
maven常见问题问答
2011-11-16 13:24 751前言 Maven,发音是[`meivin],"专家 ... -
maven setting.xml配置说明
2011-11-16 12:43 1411setting.xml view plain ... -
Maven实战指南:“打包”的技巧
2011-10-11 10:13 2094http://tech.it168.com/a2011/062 ... -
M2工程 mvn deploy 401 403错误处理
2011-10-10 15:11 1119http://hi.baidu.com/g4_gc/blog ... -
maven部署web工程基础步骤
2011-10-10 12:43 20441.准备工作 下载maven(url:http://a ... -
eclipse maven wtp jar/lib deploy
2011-10-09 09:57 1015eclipse工程(with maven & wtp) ... -
配置Maven web项目
2011-09-13 16:00 9371、创建Web应用 mvn archetype:genera ... -
maven报错:mvn deploy
2011-09-09 14:01 1684一.Error deploying artifact: ... -
maven配置篇之pom.xml
2011-09-08 15:24 809说完了settings.xml配置, ... -
简述maven中的profiles
2011-09-08 15:06 997Profiles是maven的一个很关键的术语:profile ... -
maven项目添加jar包.
2011-08-16 09:31 1154很多新手都不知道如何在maven项目里添加jar包. 以前我还 ... -
Hudson+Maven+SVN 快速搭建持续集成环境
2011-05-26 14:09 1015原: http://www.blogjava.net ... -
基于maven和hudson打造持续集成环境
2011-05-26 12:58 1114对持续集成的需求 对持续集成的需求主要来自项目过程的痛,在 ... -
maven 配置篇 之 settings.xml
2011-05-24 20:36 876maven2 比起maven1 来说,需要配置的文件少多了,主 ... -
Maven生命周期详解
2011-05-24 17:47 681Maven强大的一个重要的 ... -
激活Maven profile的几种方式
2011-05-24 17:43 851首先简单介绍下 Maven 的 profile 是什么。对于人 ... -
使用Profile和Resources Filter隔离测试环境
2011-05-24 17:42 819Maven能够帮我们很好的 ... -
使用maven-sql-plugin实现持续数据库集成(CDBI)
2011-05-24 17:41 945数据库持续集成(Continuous Database Int ... -
Maven最佳实践:版本管理
2011-05-24 16:32 819原文:http://juvenshun.iteye ...
相关推荐
VSCode 快捷键和实用插件分享 VSCode 是微软出品的一款轻量级代码编辑器,免费、开源且功能强大。它提供了丰富的快捷键和插件,帮助开发者提高编码效率和体验。下面是 VSCode 的一些常用快捷键和实用插件。 VSCode...
以下是对标题和描述中提到的几个Zotero常用插件的详细介绍: 1. **jasminum**: Jasminum是一款为Zotero设计的插件,主要用于提升文献搜索和获取的效率。它可能提供了与Sci-Hub、LibGen等非法但广泛使用的学术资源...
jQuery分享插件是Web开发者常用的一种工具,用于在网站上集成社交媒体分享功能。这种插件通常允许用户轻松地将网页内容分享到如微信、QQ空间、微博、人人网等社交平台,提升网站的互动性和用户参与度。 1. **jQuery...
非常简单实用方便的,"分享到"插件,下载执行html即可看到效果。
在WordPress中,百度分享插件是一个非常实用的工具,它允许网站管理员轻松地在其网站上添加社交分享功能,使得访问者能够快速将内容分享到各种社交媒体平台,如百度贴吧、微信、QQ空间等。这个插件的安装和启用过程...
工具插件通常包括音高修正、节奏同步等实用功能。 在音乐制作中,VST插件的使用极大地扩展了音乐人的创作能力。例如,通过均衡器插件,可以调整音频的频率响应,使声音更加平衡或突出某些频段;压缩器则能控制音频...
share.js就是这样一款实用且美观的jQuery插件,它使得在网页中集成分享按钮变得轻松简单。 **一、jQuery库的应用** jQuery是一个广泛使用的JavaScript库,它简化了HTML文档遍历、事件处理、动画和Ajax交互。通过...
然而,为了进一步提升效率和个性化开发体验,许多开发者选择安装各种实用插件。本篇文章将详细探讨“Visual Studio 实用插件(主题+实用工具)”,以及它们如何帮助开发者优化工作流程。 首先,我们来谈谈主题。...
在本文中,我们将详细探讨如何下载安装这两个版本,并介绍如何集成常用的插件,以提高工作效率。 首先,下载Zotero 6或7的安装包是至关重要的步骤。你可以通过官方渠道或者提供的压缩包文件"zotero_download"进行...
这32个常用的Origin.Plugin插件旨在扩展Origin的基本功能,以满足用户在数据分析、图形绘制以及特定任务处理上的需求。以下将详细介绍这些插件可能涉及的知识点: 1. 数据分析:Origin.Plugin中的插件提供了丰富的...
综上所述,"vshare"插件是Vue2.x开发中的一个实用工具,结合百度分享服务,能有效提升网站的社交互动性和SEO效果。开发者可以通过熟练掌握其安装、配置和使用,为自己的项目增添强大的社交分享功能。
《Obsidian常用插件详解》 Obsidian是一款强大的个人知识管理工具,凭借其强大的链接笔记功能,深受广大用户喜爱。为了提升使用体验和提高工作效率,许多开发者为Obsidian设计了一系列插件,这些插件极大地扩展了其...
总的来说,“ThinkSNS扩展插件之采集分享小插件”是一款提升用户内容采集和分享体验的实用工具。它依赖于官方的微博插件,提供了一站式的采集与分享功能,让用户能够在社交平台上更加活跃和多元化地分享网络信息。...
Chrome插件是Google Chrome浏览器的一种强大扩展,它们可以极大地提升浏览体验,添加各种实用功能。在给定的“常用的Chrome插件”压缩包中,很可能包含了像Postman和广告终结者这样的流行工具。下面,我们将深入探讨...
内容概要:由于Jenkins版本和插件更替较快,当我们下载插件时,提示我们需要升级Jenkins版本,而又不想对Jenkins版本进行升级,所以就导致部分插件无法安装,当然我们也可以去官网下载对应版本,但是插件之间的项目...
总的来说,"WordPress豆瓣电影图书分享插件"是一个实用的工具,它将豆瓣平台的丰富资源与WordPress的灵活性相结合,不仅丰富了网站内容,还提升了网站的吸引力和互动性。对于那些喜欢分享文化娱乐信息的WordPress...
此外,FeHelper还支持代码片段管理,方便开发者保存和分享代码片段。 3. AdBlock:广告拦截插件,用于阻止网页上的广告显示,减少页面加载时间,提升浏览速度和用户体验。AdBlock能够自动识别并屏蔽大部分横幅、...
在提供的压缩包中,包含有205个实用插件,这些插件进一步扩展了Dreamweaver的功能,使得用户能够定制工作环境,提高工作效率,实现更多创新设计。以下将详细讲解这些插件可能涵盖的知识点: 1. **代码编辑增强**:...
这种插件通常由JavaScript编写,因为JavaScript是浏览器端最常用的脚本语言,可以方便地与网页交互并执行动态功能。 在JavaScript分享插件中,核心知识点包括以下几个方面: 1. **DOM操作**:为了获取网页内容或者...
结合自身使用习惯,精选了一些常用插件分享给大家。 1. firebug 开发JavaScript、CSS、HTML和Ajax的得力助手 2. ie tab 可以在Mozilla/Firefox浏览器中嵌入IE浏览器的标签 3. SuperDragAndGo 超级拖拽 4. tab ...