准备
首先确认你已经安装了Nexus、Maven、SVN
配置Maven
开打.m2/setting.xml
配置如下:<!--如果你安装了Nexus,这里代表你的release、snapshots版本发布位置,但这里只是作为一个标示用于项目pom文件映射-->
<settings xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/xsd/settings-1.0.0.xsd">
<localRepository/>
<interactiveMode/>
<usePluginRegistry/>
<offline/>
<pluginGroups/>
<servers>
<server>
<id>nexus-releases</id>
<username>admin</username>
<password>admin123</password>
</server>
<server>
<id>nexus-snapshots</id>
<username>admin</username>
<password>admin123</password>
</server>
</servers>
<mirrors/>
<proxies/>
<profiles/>
<activeProfiles/>
</settings>
创建测试项目
mvn archetype:create -DgroupId=com.yourcompany -DartifactId=myproject -DarchetypeArtifactId=maven-archetype-quickstart
搭建你的SVN路径,假如SVN上的路径如下:
-trunk
-myproject
-branches
-tags
修改POM文件
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.yourcompany</groupId>
<artifactId>myproject4</artifactId>
<!--这里一定要是快照版本-->
<version>1.0-SNAPSHOT</version>
<packaging>jar</packaging>
<name>myproject</name>
<url>http://maven.apache.org</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
</dependencies>
<!--配置你的项目路径-->
<scm>
<connection>
scm:svn:http://michael-du/svn/trunk/myproject
</connection>
<developerConnection>
scm:svn:https://michael-du/svn/trunk/myproject
</developerConnection>
</scm>
<!--这里和开始的setting.xml对应,主要是配置到时候SVN上传的路径-->
<distributionManagement>
<repository>
<id>nexus-releases</id>
<name>Nexus Release Repository</name>
<url>http://10.0.25.8:8081/nexus/content/repositories/releases</url>
</repository>
<snapshotRepository>
<id>nexus-snapshots</id>
<name>Nexus Snapshot Repository</name>
<url>http://10.0.25.8:8081/nexus/content/repositories/snapshots</url>
</snapshotRepository>
</distributionManagement>
<!--把release版本打成tag并上传到SVN-->
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-release-plugin</artifactId>
<version>2.0-beta-9</version>
<configuration>
<tagBase>
https://michael-du/svn/tags
</tagBase>
</configuration>
</plugin>
</plugins>
</build>
</project>
mvn release:prepare
个人说明:会打一个快照版本并上传到SVN的tag目录,并且你的版本会改变
mvn deploy
个人说明:把快照版本上传到Nexus
mvn release:perform
个人说明:把release上传到Nexus
其他:
- release:clean Clean up after a release preparation.
- release:prepare Prepare for a release in SCM.
- release:prepare-with-pom Prepare for a release in SCM, and generate release POMs that record the fully resolved projects used.
- release:rollback Rollback a previous release.
- release:perform Perform a release from SCM.
- release:stage Perform a release from SCM into a staging folder/repository.
- release:branch Create a branch of the current project with all versions updated.
- release:update-versions Update the versions in the POM(s).