一.建立我们的本地仓库(Maven仓库管理-Nexus)
用maven Biuld项目时,POM中所定义的依赖包默认情况下会从官方的中央仓储中下载,项目成员都从中央仓储下载的话不是个快速并且令人放心的主意,并且可能我们访问不了中央仓储,或者这些依赖包里
有些是我们自己开发的,官方仓储中根本没有。所以这时就用到了Nexus.配置的本地仓储,使用本地仓储,我们BIULD项目时,Maven会先从本地仓储(这里是127.0.0.1:8081)
下载需要的依赖包和插件,速度会很快。如果本地中找不到,再到官方的中央仓储中去下载,这个只限第一次,下次再Biuld的时候,我们本地仓储中已经有了上次从中央仓储中下载的东西。
在本地建立好Nexus仓储
在Setting.xml里添加以下的配置,
①
<mirrors>
<mirror>
<id>nexus-public-snapshots</id>
<mirrorOf>public-snapshots</mirrorOf>
<url>http://127.0.0.1:8081/nexus/content/groups/public-snapshots</url>
</mirror>
<mirror>
<id>nexus</id>
<mirrorOf>*</mirrorOf>
<url>http://127.0.0.1:8081/nexus/content/groups/public</url>
</mirror>
</mirrors>
②这个也可以在POM中配置,在pom中配置的话作用域只限POM所在的那个项目。
<profiles>
<profile>
<id>development</id>
<repositories>
<repository>
<id>china-nexus</id>
<name>local private nexus</name>
<url>http://127.0.0.1:8081/nexus/content/groups/public</url>
<releases><enabled>true</enabled></releases>
<snapshots><enabled>false</enabled></snapshots>
</repository>
<repository>
<id>china-nexus-snapshots</id>
<name>local private nexus (snapshots)</name>
<url>http://127.0.0.1:8081/nexus/content/groups/public-snapshots</url>
<releases><enabled>false</enabled></releases>
<snapshots><enabled>true</enabled></snapshots>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>nexus</id>
<url>http://127.0.0.1:8081/nexus/content/groups/public</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</pluginRepository>
</pluginRepositories>
</profile>
</profiles>
③
<activeProfiles>
<activeProfile>development</activeProfile>
</activeProfiles>
执行:maven clean install
以上配置的细节说明参考maven-definitive-guide的第十六章内容
二.maven使用Nexus作为仓库 releases和snapshots分类发布
前面说过,pom中的依赖包里可能有我们自己开发的,这里的说明的方法就是向本地仓储中发布我们自己的依赖包。
1.Pom.xml 里设置
<!-- deploy path -->
<distributionManagement>
<repository>
<id>releases</id>
<name>Internal Releases</name>
<url> http://127.0.0.1:8081/nexus/content/repositories/releases/</url>
</repository>
<snapshotRepository>
<id>snapshots</id>
<name>Internal snapshots</name>
<url> http://127.0.0.1:8081/nexus/content/repositories/snapshots/</url>
</snapshotRepository>
</distributionManagement>
2.Setting.xml 里设置
<servers>
<server>
<id>releases</id>
<username>admin</username>
<password>admin123</password>
</server>
<server>
<id>snapshots</id>
<username>admin</username>
<password>admin123</password>
</server>
</servers>
如果pom的version标签中的值结尾是:-SNAPSHOT,将使用snapshots repository,否则使用releases repository。命令是:mvn deploy
三.Maven结合svn进行版本管理
svn仓库的根目录下创建三个文件夹:/trunk, branches/, tags/。分别用来存放主干,分支,以及标签。
Pom.xml 里设置
<!-- svn -->
<scm>
<connection>scm:svn:http://svn-dgts.lemon-asia.com/svn/AstraZeneca-Maven/trunk</connection>
<developerConnection>scm:svn:http://svn-dgts.lemon-asia.com/svn/AstraZeneca-Maven/trunk</developerConnection>
</scm>
<!-- maven-release -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-release-plugin</artifactId>
<version>2.0-beta-7</version>
<configuration>
<tagBase>http://svn-dgts.lemon-asia.com/svn/AstraZeneca-Maven/tags/</tagBase>
<username>yunfeng.wu</username>
<password>Dgts1234</password>
<releaseProfiles>release</releaseProfiles>
</configuration>
</plugin>
发布执行
执行发布命令前要确保class生成目录不作为svn监管对象,这里是target目录,否则出错。 POM中的版本号要带-SNAPSHOT
1. 执行命令:mvn release:prepare
执行过程中,会遇到 发布什么版本号?发布的tag标签名称是什么?主干上新的版本是什么? 的提问,一般直接默认既可,maven每次会自动加加
然后,tags里会多出/MyDgts-1.0 ,这就是需要发布的版本1.0,同时trunk中的POM,其版本自动升级成了1.1-SNAPSHOT。
2. 执行命令:mvn release:perform
maven-release-plugin会自动帮我们签出刚才打的tag,然后打包,分发到远程Maven仓库中,至此,整个版本的升级,打标签,发布等工作全部完成。我们可以在远程Maven仓库
http://10.144.177.23:8081/nexus/content/repositories/releases/中看到正式发布的版本。
Branch 分支的执行命令是mvn release:branch -DbranchName=1.1.x -DupdateBranchVersions=true -DupdateWorkingCopyVersions=false 这个一般在RELEASE之前做
在执行mvn release:prepare命令出错的时候,MAVEN对中间修改过的pom文件不做会滚,这时候再执行mvn release:prepare的话出错,
比如pom中的版本号中的-SNAPSHOT没有了,(maven发布时会先把-SNAPSHOT号先去掉,发布完成后再加上版本号添上去),所以万一出错,改好错误后,把POM文件恢复到
之前的样子,再重新发布。还有执行前要确保:CMD下 svn --version能执行,就是要在PATH中加svn的环境变量,如F:\Program Files\Subversion\bin
分享到:
相关推荐
持续集成环境maven+nexus+jenkins+svn搭建
Maven+nexus+svn+jenkins的安装使用说明。
jenkins集成环境,maven + nexus,项目bug管理系统mantis
持续集成环境maven+nexus+jenkins+svn搭建[整理].pdf
nexus+svn+jenkin_hudson+maven+禅道项目管理软件环境搭建:基于敏捷开发流程及持续集成理念,通过工具,搭建软件开发和自动化测试的环境,提高开发效率,简化管理流程;此为部分一
nexus+svn+jenkin_hudson+maven+禅道项目管理软件环境搭建二,继之前第二部分
svn+maven+trac+nexus产品集成配置管理
NULL 博文链接:https://chengtong-java.iteye.com/blog/2251957
目录 1、传统网站部署流程 2、主流网站部署流程及方法 3、Jenkins持续平台安装 4、Jenkins持续集成MAVEN讲解 5、Jenkins持续集成JOB工程设置 6、Jenkins持续集成网站构建实战...Jenkins+Maven+SVN+Tomcat持续集成实v1战
使用maven、nexus、hudson、svn、sts进行持续集成开发环境搭建
openshift-nexus-svn 在 openshift-nexus-svn 应用程序中设置 Maven 发布Spring MyIbatis 简介:12/22/2014 Heroku 上托管的 MYSQL 数据库的连接参数: 数据库:herokungjavamq 用户:adminhejXHcU 密码:Algd1-u9Aq...
第9章:使用Nexus创建私服/9.6 部署构件到Nexus/9.6.1 使用Maven部署构件到Nexus 第9章:使用Nexus创建私服/9.7 Nexus的权限管理/9.7.1 Nexus的访问控制模型 第9章:使用Nexus创建私服/9.7 Nexus的权限管理/9.7.2 为...
SVN-Jenkins-Nexus-Maven-Tomcat持续集成构建调研报告
本文首先针对maven3.3.3 的版本构建普通Java 应用和Java Web 应用进行讲解。然后针对公司私有maven 库的情况下,如何安装自有资源及在maven 应用中使用私有maven 库中的资源进行说明。接下来针对maven 与配置管理...
上一篇随笔Maven+Nexus+Jenkins+Svn+Tomcat+Sonar搭建持续集成环境(一)介绍maven和nexus的环境搭建,以及如何使用maven和nexus统一管理库文件和版本,以及怎么将自己的模块上传至nexus私服,供其他模块引用。...
maven Nexus Jenkins 工作软件 反编译软件 office系列 下载器 adobe系列 记录软件 思维导图 office--Note 邮件管理 性能优化 分层优化 系统级别 中间件级别 JVM级别 代码级别 分段优化 前端 ...
swv:基于开源软件的陆军软件开发可视化自动化机制的开发