相信maven1 大家都已经很熟悉了,具体maven能做什么,就不详细说了。个人觉得maven在开源项目中用的还是比较多的,公司内部,就不太清楚了。我以前的公司用过一段时间,不过后来就没有下文了。
与maven1 相比,maven2可算是几乎重写了,不过从速度来说应该更快。
主要的几个新特性包括:(详细参考www.ibm/developerworks/cn/opensource/os-maven2/index.html)
1. 更快、更简单
速度方面可以比上ant了
2. 更少的配置文件
现在的配置文件只剩下了l和l了。
3. Plugin语言更换
语言开始支持java,BeanShell和ant
4. 提供了预定义的模版
这点是最有帮助的,用户可以自己定义自己的项目模版了,就像用appfuse一样生成项目结构
与maven1 相比,maven2可算是几乎重写了,不过从速度来说应该更快。
主要的几个新特性包括:(详细参考www.ibm/developerworks/cn/opensource/os-maven2/index.html)
1. 更快、更简单
速度方面可以比上ant了
2. 更少的配置文件
现在的配置文件只剩下了l和l了。
3. Plugin语言更换
语言开始支持java,BeanShell和ant
4. 提供了预定义的模版
这点是最有帮助的,用户可以自己定义自己的项目模版了,就像用appfuse一样生成项目结构
5. 生命周期的引入
在Maven2中有了明确的生命周期概念,而且都提供与之对应的命令,使得项目构建更加清晰明了。
6. 新增Dependency Scope
这点也比较重要,有些用于test范围的包,可以不用加入依赖了
7. 传递依赖,简化依赖管理
这是最为方便的,可以省了很多配置。如a 依赖 b,b 依赖c 默认 a也会依赖 c。但是也会带来隐患,如版本冲突。不过maven 也已经考虑到了,可以使用exclusions来排除相应的重复依赖
介绍了那么多,现在切入正题,开始maven2 之旅:
首些下载需要的工具:
maven2: /download.html 最主要的
maven-proxy:用来代理repository,使用本地库代替maven2的远程库
/
在Maven2中有了明确的生命周期概念,而且都提供与之对应的命令,使得项目构建更加清晰明了。
6. 新增Dependency Scope
这点也比较重要,有些用于test范围的包,可以不用加入依赖了
7. 传递依赖,简化依赖管理
这是最为方便的,可以省了很多配置。如a 依赖 b,b 依赖c 默认 a也会依赖 c。但是也会带来隐患,如版本冲突。不过maven 也已经考虑到了,可以使用exclusions来排除相应的重复依赖
介绍了那么多,现在切入正题,开始maven2 之旅:
首些下载需要的工具:
maven2: /download.html 最主要的
maven-proxy:用来代理repository,使用本地库代替maven2的远程库
/
continuum:一个不错的持续整合工具,用于自动build。支持ant,maven
/continuum/
svn:版本控制工具相信都已经配置了。
maven 用于eclipse的插件 ,在maven主站有下载,不错的插件。当然idea也有相应的插件
最后,http,服务器是必不可少的。用于内部开发使用。
可以使用apache ,或者jetty /
安装:
安装maven2很简单,把下载来的maven包解开就行了。(目前我的配置都在win2003上,还没有应用于linux,所有所有的配置都针对 windows).增加相应的环境变量m2_home=maven2的安装目录,不要忘了设置java_home的目录。另外在path中增加% m2_home%\bin;可以直接在命令行下面使用mvn。
其他工具的安装在后续的文章会介绍。
开始第一个mvean2项目:
/continuum/
svn:版本控制工具相信都已经配置了。
maven 用于eclipse的插件 ,在maven主站有下载,不错的插件。当然idea也有相应的插件
最后,http,服务器是必不可少的。用于内部开发使用。
可以使用apache ,或者jetty /
安装:
安装maven2很简单,把下载来的maven包解开就行了。(目前我的配置都在win2003上,还没有应用于linux,所有所有的配置都针对 windows).增加相应的环境变量m2_home=maven2的安装目录,不要忘了设置java_home的目录。另外在path中增加% m2_home%\bin;可以直接在命令行下面使用mvn。
其他工具的安装在后续的文章会介绍。
开始第一个mvean2项目:
mvn archetype:create -pany.app \
-DartifactId=my-app
简单介绍一下 groupId相当于你的组织,如同org.springframework,会转化为相应得本地路径 artifactId,你主要的jar包名称,也就是你要打成的jar 名称。
编译应用资源
mvn compile
编译相应的jave 文件
编译测试类以及运行测试类
mvn test
运行测试类
如果只想编译test,执行
mvn test-compile
打包和安装你的本地库
打包:
mvn package
-DartifactId=my-app
简单介绍一下 groupId相当于你的组织,如同org.springframework,会转化为相应得本地路径 artifactId,你主要的jar包名称,也就是你要打成的jar 名称。
编译应用资源
mvn compile
编译相应的jave 文件
编译测试类以及运行测试类
mvn test
运行测试类
如果只想编译test,执行
mvn test-compile
打包和安装你的本地库
打包:
mvn package
安装:
mvn install
创建web site
mvn site
清除所有输出
mvn clean
创建相关的ide文件
mvn idea:idea 或者 mvn eclipse:eclipse
顺便说一下,maven2 是有生命周期这一概念的,也就是说如果你执行package,相应的以前步骤,如compile,test等都会自动执行。
刚开始执行会比较慢,需要从maven2远程库中下载所有的文件到本地。如果你的本地没有相应的依赖包,则每次maven都会去远程下载,所以配置一个镜像库就比较重要了。
另外介绍一下主要的参考资料:
mavn2 主站:主要的pom和l参考资料
mvn install
创建web site
mvn site
清除所有输出
mvn clean
创建相关的ide文件
mvn idea:idea 或者 mvn eclipse:eclipse
顺便说一下,maven2 是有生命周期这一概念的,也就是说如果你执行package,相应的以前步骤,如compile,test等都会自动执行。
刚开始执行会比较慢,需要从maven2远程库中下载所有的文件到本地。如果你的本地没有相应的依赖包,则每次maven都会去远程下载,所以配置一个镜像库就比较重要了。
另外介绍一下主要的参考资料:
mavn2 主站:主要的pom和l参考资料
Better Builds with Maven e/m2book_download.jsp
不错的书,主要通过例子介绍。可惜都是E文的,花点时间还是值得的。
下一个主题,会说一下maven2的主要配置。
不错的书,主要通过例子介绍。可惜都是E文的,花点时间还是值得的。
下一个主题,会说一下maven2的主要配置。
maven 配置篇 之 l
maven2 比起maven1 来说,需要配置的文件少多了,主要集中在l和l中。
先来说说l,l对于maven来说相当于全局性的配置,用于所有的项目。在maven2中存在两个 l,一个位于maven2的安装目录conf下面,作为全局性配置。对于团队设置,保持一致的定义是关键,所以 maven2/conf下面的l就作为团队共同的配置文件。保证所有的团队成员都拥有相同的配置。当然对于每个成员,都需要特殊的 自定义设置,如用户信息,所以另外一个l就作为本地配置。默认的位
先来说说l,l对于maven来说相当于全局性的配置,用于所有的项目。在maven2中存在两个 l,一个位于maven2的安装目录conf下面,作为全局性配置。对于团队设置,保持一致的定义是关键,所以 maven2/conf下面的l就作为团队共同的配置文件。保证所有的团队成员都拥有相同的配置。当然对于每个成员,都需要特殊的 自定义设置,如用户信息,所以另外一个l就作为本地配置。默认的位
置为:${user.dir} /.l目录中(${user.dir} 指windows 中的用户目录)。
l基本结构如下:
<settings xmlns="/POM/4.0.0"
xmlns:xsi="/2001/XMLSchema-instance"
xsi:schemaLocation="/POM/4.0.0
/xsd/settings-1.0.0.xsd">
<localRepository/>
<interactiveMode/>
<usePluginRegistry/>
<offline/>
<pluginGroups/>
<servers/>
<mirrors/>
<proxies/>
<profiles/>
l基本结构如下:
<settings xmlns="/POM/4.0.0"
xmlns:xsi="/2001/XMLSchema-instance"
xsi:schemaLocation="/POM/4.0.0
/xsd/settings-1.0.0.xsd">
<localRepository/>
<interactiveMode/>
<usePluginRegistry/>
<offline/>
<pluginGroups/>
<servers/>
<mirrors/>
<proxies/>
<profiles/>
<activeProfiles/>
</settings>
简单介绍一下几个主要的配置因素:
localRepository:表示本地库的保存位置,也就是maven2主要的jar保存位置,默认在${user.dir}/.m2/repository,如果需要另外设置,就换成其他的路径。
log4j与log4j2offline:如果不想每次编译,都去查远程中心库,那就设置为true。当然前提是你已经下载了必须的依赖包。
Servers
在POM中的 distributionManagement元素定义了开发库。然而,特定的username和pwd不能使用于l,所以通过此配置来保存server信息
<servers>
<server>
<id>server001</id>
<username>my_login</username>
<password>my_password</password>
</settings>
简单介绍一下几个主要的配置因素:
localRepository:表示本地库的保存位置,也就是maven2主要的jar保存位置,默认在${user.dir}/.m2/repository,如果需要另外设置,就换成其他的路径。
log4j与log4j2offline:如果不想每次编译,都去查远程中心库,那就设置为true。当然前提是你已经下载了必须的依赖包。
Servers
在POM中的 distributionManagement元素定义了开发库。然而,特定的username和pwd不能使用于l,所以通过此配置来保存server信息
<servers>
<server>
<id>server001</id>
<username>my_login</username>
<password>my_password</password>
<privateKey>${usr.home}/.ssh/id_dsa</privateKey>
<passphrase>some_passphrase</passphrase>
<filePermissions>664</filePermissions>
<directoryPermissions>775</directoryPermissions>
<configuration></configuration>
</server>
</servers>
<passphrase>some_passphrase</passphrase>
<filePermissions>664</filePermissions>
<directoryPermissions>775</directoryPermissions>
<configuration></configuration>
</server>
</servers>
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论