使用
maven2
进
行
团队
配置
对
于
团队
来
说
,建立
统
一的
开发环
境是必
须
的,而
maven
能很好帮助建立
统
一的
环
境。下面就介
绍
如何更有效的
进
行
统
一的配置。
准
备
工作:
下
载
必
须
的
软
件:
maven2: http://maven.apache.org/download.html
最主要的
maven-proxy
:用来代理
repository
,使用代理来
访问
多个
远
程
库
http://maven-proxy.codehaus.org/
continuum
:一个不
错
的持
续
整合工具,用于自
动
build
。
支持ant,maven
http://maven.apache.org/continuum/
svn:版本控制工具
创
建一致的
开发环
境
在共享的
开发环
境中,更好的建
议
是保持maven的两个不同的配置文件分
别
管理,包括共享和用
户
自定
义设
置。共同的配置包括在安装目
录
中,而
单
独的
开发设
置保存在用
户
本地目
录
。
全局的配置文件
settings.xml
<servers>
//
公司内部
库
,所有的
release
版本
,serverid
对应
于
repository id
,用于在
deploy
时
,
访问
使用,主要保存用
户
名和密
码
<server>
<id>internal</id>
<username>${website.username}</username>
<password>${website.pwd}</password>
<filePermissions>664</filePermissions>
<directoryPermissions>775</directoryPermissions>
</server>
//
目前的
开发库
,用于
snapshot
库
<server>
<id>snapshot</id>
<username>${website.username}</username>
<password>${website.pwd}</password>
<filePermissions>664</filePermissions>
<directoryPermissions>775</directoryPermissions>
</server>
</servers>
<profiles>
<!--
定
义
核心
库
maven
镜
像
,
由
maven-proxy
实现
-->
<profile>
<id>central-repo</id>
<repositories>
<repository>
<id>central</id>
<name>Internal Repository</name>
<url>http://192.168.0.2:9999/repository</url>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>central</id>
<name>Internal Repository</name>
<url>http://192.168.0.2:9999/repository</url>
</pluginRepository>
</pluginRepositories>
</profile>
<!--
定
义
内部
库
,包括公司的所有
release
版本
-->
<profile>
<id>internal-repo</id>
<repositories>
<repository>
<id>internal</id>
<name>Internal Repository</name>
<url>http://192.168.0.2:8080/repo-local</url>
<releases>
<enabled>true</enabled>
<updatePolicy>never</updatePolicy>
<checksumPolicy>warn</checksumPolicy>
</releases>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>internal</id>
<name>Internal Plugin Repository</name>
<url>http://192.168.0.2:8080/repo-local</url>
<releases>
<enabled>true</enabled>
<updatePolicy>never</updatePolicy>
<checksumPolicy>warn</checksumPolicy>
</releases>
</pluginRepository>
</pluginRepositories>
</profile>
<!--
定
义
内部
开发库
,也可以合并
snapshot
和
release-->
<profile>
<id>snapshot-repo</id>
<repositories>
<repository>
<id>snapshot</id>
<name>Internal Repository</name>
<url>http://192.168.0.2:8080/repo-snapshot</url>
<snapshots>
<enabled>true</enabled>
<updatePolicy>interval:60</updatePolicy>
<checksumPolicy>warn</checksumPolicy>
</snapshots>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>snapshot</id>
<name>Internal Plugin Repository</name>
<url>http://192.168.0.2:8080/repo-snapshot</url>
<snapshots>
<enabled>true</enabled>
<updatePolicy>interval:60</updatePolicy>
<checksumPolicy>warn</checksumPolicy>
</snapshots>
</pluginRepository>
</pluginRepositories>
</profile>
</profiles>
<!--
激活相
应
得配置
-->
<activeProfiles>
<activeProfile>central-repo</activeProfile>
<activeProfile>internal-repo</activeProfile>
<activeProfile>snapshot-repo</activeProfile>
</activeProfiles>
<!--
插件默
认
groupId -->
<pluginGroups>
<pluginGroup>com.mycompany.plugins</pluginGroup>
</pluginGroups>
包括了以下的共享因素:
服
务
器
设
置典型是共同的,只有用
户
名需要在用
户环
境中
设
置。使用一致的定
义
来配置共同的
设
置
-
profile定义了共同的因素,内部开发库,包括指定的组织或者部门发布的产品。这些库独立于核心开发库。
-
激活的profiles列表,用于激活相应的profile
-
plugin 组只有当你的组织中有自己定义的插件,用于命令行运行在pom中定义。
对
于
单
独的用
户
来
说
,
设
置如下:
<settings>
<profiles>
<profile>
<id>property-overrides</id>
<properties>
<website.username>myuser</website.username>
<website.pwd>test</website.username>
</properties>
</profile>
</profiles>
</settings>
创
建共享
开发库
大多数
组织
将会
创
建自己的内部
开发库
,用于配置,而中心
开发库
用于
连
接maven
设
置内部
开发库
是
简单
的,使用http
协议
,可以使用存在的http 服
务
器。或者
创
建新的服
务
,使用apache,或者jetty
假
设
服
务
器地址192.168.0.2 ,端口8080
http://192.168.0.2:8080/repo-local
设
置另外一个
开发库
,用于
设
置
项
目的snapshot
库
http://192.168.0.2:8080/repo-snapshot
中心
镜
像
库
,使用maven-proxy
创
建,当然也可以
创
建自己的
镜
像。用于下
载
本地
库
中没有的artifact
maven-proxy
设
置
从网上直接下
载
maven-proxy-standalone-0.2-app.jar
和 proxy.properties
在命令行中,直接运行java -jar maven-proxy-standalone-0.2-app.jar proxy.properties
主要的配置:
设
置repo.list 中增加相
应
的
库
就可以,如下定
义
:
repo.list=repo1.maven.org,...
#maven
的中心
库
repo.repo1.maven.org.url=http://repo1.maven.org/maven2
repo.repo1.maven.org.description=maven.org
repo.repo1.maven.org.proxy=one
repo.repo1.maven.org.hardfail=false
repo.repo1.maven.org.cache.period=360000
repo.repo1.maven.org.cache.failures=true
以后所有的
远
程
库
,都通
过
此方式增加。
顺
便
说
一下,不要忘了注
释
原来的example,那是没有
办
法
访问
的。
其他配置如
端口号
port=9999
保存的位置
repo.local.store=target/repo
serverName=http://localhost:9999
创
建
标
准的
组织
pom
定
义
共同的内容,包括公司的
结
构,如
组织
,部
门
以及
团队
。
察看一下
maven
的自身,可以作
为
很好的参考。
如
scm
<project>
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.apache.maven</groupId>
<artifactId>maven-parent</artifactId>
<version>1</version>
</parent>
<groupId>org.apache.maven.scm</groupId>
<artifactId>maven-scm</artifactId>
<url>http://maven.apache.org/maven-scm/</url>
...
<modules>
<module>maven-scm-api</module>
<module>maven-scm-providers</module>
...
</modules>
</project>
在
maven
父
项
目中可以看到如下定
义
:
<project>
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.apache</groupId>
<artifactId>apache</artifactId>
<version>1</version>
</parent>
<groupId>org.apache.maven</groupId>
<artifactId>maven-parent</artifactId>
<version>5</version>
<url>http://maven.apache.org/</url>
...
<mailingLists>
<mailingList>
<name>Maven Announcements List</name>
<post>announce@maven.apache.org</post>
...
</mailingList>
</mailingLists>
<developers>
<developer>
...
</developer>
</developers>
</project>
maven
父
pom
包括了共享的元素,如声明
邮
件列表,
开发
者。并且大多数
项
目
继
承
apache
组织
:
<project>
<modelVersion>4.0.0</modelVersion>
<groupId>org.apache</groupId>
<artifactId>apache</artifactId>
<version>1</version>
<organization>
<name>Apache Software Foundation</name>
<url>http://www.apache.org/</url>
</organization>
<url>http://www.apache.org/</url>
...
<repositories>
<repository>
<id>apache.snapshots</id>
<name>Apache Snapshot Repository</name>
<url>http://svn.apache.org/maven-snapshot-repository</url>
<releases>
<enabled>false</enabled>
</releases>
</repository>
</repositories>
...
<distributionManagement>
<repository>
...
</repository>
<snapshotRepository>
...
</snapshotRepository>
</distributionManagement>
</project>
对
于
项
目自身来
说
,父
pom
很少更新。所以,最后的方式保存父
pom
文件在
单
独的版本控制区域,它
们
能
够
check out
,更改和配置
.
使用Continuum持久整合
持
续
整合自
动
build
你的
项
目,通
过
一定的
时间
,包括所有的冲突在早期察
觉
,而不是
发
布的
时
候。另外持
续
整合也是一
种
很好的
开发
方式,使
团队
成
员
能
产
生
细
微的,交互的
变动
,能更有效的支持平行
开发进
程。
可以使用
maven
的
continuum
作
为
持久整合的服
务
。
安装
continuum
,比
较简
,使用以下的命令:
C:\mvnbook\continuum-1.0.3> bin\win32\run
可以通
过
http://localhost:8082/continuum
来
验证
为
了支持
continuum
发
送
e-mail
提醒,你需要相
应
的
smtp
服
务
用于
发
送信息。默
认
使用
localhost:25
,如果你没有
设
置,
编辑
上面的文件改
变
smtp-host
设
置。
下一
步
,
设
置
svn
目
录
:
svn co file://localhost/C:/mvnbook/svn/proficio/trunk proficio
编辑
pom.xml
用于正确相
应
得
e-mail
地址。
...
<ciManagement>
<system>continuum</system>
<url>http://localhost:8080/continuum
<notifiers>
<notifier>
<type>mail</type>
<configuration>
<address>youremail@yourdomain.com</address>
</configuration>
</notifier>
</notifiers>
</ciManagement>
...
<scm>
<connection>
scm:svn:file://localhost/c:/mvnbook/svn/proficio/trunk
</connection>
<developerConnection>
scm:svn:file://localhost/c:/mvnbook/svn/proficio/trunk
</developerConnection>
</scm>
...
<distributionManagement>
<site>
<id>website</id>
<url>
file://localhost/c:/mvnbook/repository/sites/proficio
/reference/${project.version}
</url>
</site>
</distributionManagement>
提交相
应
的pom,然后
执
行mvn install
如果你返回http://localhost:8082/continuum,你会看到相
应
的
项
目列表。
一旦你登
录
后,你可以
选择
mavan 2.0
项
目用于增加相
应
的
项
目。你可以增加你的url或者提交你的本地内容。
你可以使用本地
pom url
,如下
file://localhost/c:mvnbook/proficio/pom.xml
在提交了此
url
后,
continuum
将会返回相
应
的成功信息。
以下的原
则
用于更好的帮助持
续
整合:
早提交,
经
常提交:当用
户经
常提交
时
,持
续
整合是最有效的。
这
并不意味着,提交不正确的代
码
。
经
常运行build:用于最快
检测
失
败
尽快修正失
败
:当失
败发
生
时
,
应该马
上修正失
败
建
议
一个有效的版本
运行clean build
运行
复杂
的
综
合
测试
build
所有的
项
目
结
构分支
持
续
运行
项
目的拷
贝
分享到:
相关推荐
maven2完全使用手册 maven2完全使用手册 maven2完全使用手册 maven2完全使用手册
maven2完全使用手册 http://maven.apache.org/pom.html
**Maven完全适用手册概述** Maven是一款强大的Java项目管理和集成工具,它通过XML格式的配置文件(pom.xml)来管理项目的构建、报告和依赖关系。Maven2相较于其前身Maven1进行了大量改进,提供了更高效、简洁的体验...
这份“maven完全手册”是个人精心整理的中文文档,旨在帮助开发者全面理解并掌握Maven的使用。 **1. Maven简介** Maven是由Apache软件基金会开发的一个项目管理和综合工具。它基于项目对象模型(Project Object ...
maven2完全使用手册.docx Maven_介绍培训.pptx Maven学习指南.pdf Maven实战.doc Maven实战.pdf Maven构建并管理Flex项目入门.pdf Maven简单实用教程.docx OTNVD_WebLogicServerDevelopment_CN.pdf 《Maven实战》...
包含:Maven2_基础教程.pdf\《Maven权威指南》-电子书下载(PDF)(中文)\maven2完全使用手册.docx\Maven3实战笔记04Maven的生命周期和插件.doc\Maven实战.pdf\Maven学习指南.pdf
Maven完全手册 maven2 起步 相信maven1 大家都已经很熟悉了,具体maven能做什么,就不详细说了。个人觉得maven在开源项目中用的还是比较多的,公司内部,就不太清楚了。我以前的公司用过一段时间,不过后来就没有...
Maven的完整手册通常会涵盖以上知识点,并提供详细的使用说明和最佳实践,帮助用户更有效地使用Maven进行项目构建和管理。手册中还可能包含一些高级技巧,比如如何通过Maven进行代码的打包和部署,如何设置安全机制...
**Maven入门到精通** Maven,一个强大的Java项目管理工具,由Apache软件基金会...阅读提供的文档,如《Maven入门-概念与实例》、《Maven 参考文档》和《Maven2完全使用手册》,将有助于你更全面地掌握Maven的使用。
《maven2完全使用手册》全面地探讨了Maven2的各种特性和用法,包括高级配置、多模块项目管理、依赖范围、继承与聚合,以及解决依赖冲突的方法。这本手册对于那些希望深入理解Maven的开发者来说非常实用。 《Maven3...