準備
首先確認你已經安裝了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).