Maven 自动打包上传到私服 Nexus
转载于:http://blog.csdn.net/jerome_s/article/details/54410178
上传私服 pom.xml 配置
1
2
3
4
5
6
7
8
9
10
|
< distributionManagement > < repository > < id >releases </ id > </ repository > < snapshotRepository > < id >Snapshots </ id > </ snapshotRepository > </ distributionManagement > |
1
2
3
4
5
6
7
8
9
10
11
12
|
< servers > < server > < id >releases</ id > < username >admin</ username > < password >qsapwd</ password > </ server > < server > < id >Snapshots</ id > < username >admin</ username > < password >qsapwd</ password > </ server > </ servers > |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
< build > < plugins > < plugin > <!-- 打jar包 --> < groupId >org.apache.maven.plugins</ groupId > < artifactId >maven-jar-plugin</ artifactId > < version >2.4</ version > < configuration > < excludes > < exclude >**/*.properties</ exclude > </ excludes > </ configuration > </ plugin > < plugin > <!-- 打源码 --> < groupId >org.apache.maven.plugins</ groupId > < artifactId >maven-source-plugin</ artifactId > < version >2.4</ version > < configuration > < attach >true</ attach > </ configuration > < executions > < execution > < phase >compile</ phase > < goals > < goal >jar</ goal > </ goals > </ execution > </ executions > </plugin> </ plugins > </ build > |
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
一个基础类,可能要升级并放到私服库里,为了方便,应该能够自动打包放到nexus。这就需要配置maven一些参数与pom.xml。
依次在settings.xml文件裡輸入
- <!-- nexus帳號和密碼-->
- <server>
- <id>releases</id>
- <username>admin</username>
- <password>admin123</password>
- </server>
- <server>
- <id>snapshots</id>
- <username>admin</username>
- <password>admin123</password>
- </server>
- </servers>
- ...
- <!-- 引用naxus倉庫組-->
- <profile>
- <id>dev</id>
- <repositories>
- <repository>
- <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>
- </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>
- ..
- <!-- nexus -->
- <activeProfiles>
- <activeProfile>dev</activeProfile>
- </activeProfiles>
注意:根據標籤位置準確輸入
在本项目的pom.xml配置即可
<!--上传配置 必须-->
<distributionManagement>
<repository>
<id>releases</id>
<url>http://127.0.0.1:8081/nexus/content/repositories/releases</url>
</repository>
<snapshotRepository>
<id>snapshots</id>
<url>http://127.0.0.1:8081/nexus/content/repositories/snapshots</url>
</snapshotRepository>
</distributionManagement>
<!--上传source.jar 非必须-->
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<executions>
<execution>
<id>attach-sources</id>
<goals>
<goal>jar</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
上面的ID和pom.xml中对应distributionManagement-> repository的ID,用户名和密码需要在nexus中配置。
完成以上配置,只要输入命令:mvn deploy 即可。
遇到的问题:
maven deploy到nexus报错:Return code is: 401, ReasonPhrase:Unauthorized
提交到nexus时候报错:
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-deploy-plugin:2.7:deploy (default-deploy) on project *: Failed to deploy artifacts: Could not transfer artifact *:jar:1.0 from/to releases (http://10.1.81.199:8081/nexus/content/repositories/releases/): Failed to transfer file: http://10.1.81.199:8081/nexus/content/repositories/releases/com/cs2c/security-management-client* /1.0/*-1.0.jar. Return code is: 401, ReasonPhrase:Unauthorized.
原来是没有配置认证。
maven目录conf的setting.xml里,
- <server>
- <id>releases</id>
- <username>admin</username>
- <password>admin123</password>
- </server>
- <server>
- <id>snapshots</id>
- <username>admin</username>
- <password>admin123</password>
- </server>
- </servers>
用户名和密码都是nexus的。再次deploy即可。
注意这里的id要和pom.xml里远程deploy的地址对应一致,我的pom.xml里配置:
- <!-- 配置远程发布到私服,mvn deploy -->
- <distributionManagement>
- <repository>
- <id>releases</id>
- <name>Nexus Release Repository</name>
- <url>http://10.1.81.199:8081/nexus/content/repositories/releases/</url>
- </repository>
- <snapshotRepository>
- <id>snapshots</id>
- <name>Nexus Snapshot Repository</name>
- <url>http://10.1.81.199:8081/nexus/content/repositories/snapshots/</url>
- </snapshotRepository>
- </distributionManagement>