Maven發佈工程到私服的配置

maven的settings.xml配置

<server>
	<id>releases-id</id>  
	<username>admin</username>  
	<password>admin123</password>  
</server>  

<server>  
	<id>snapshot-id</id>  
	<username>admin</username>  
	<password>admin123</password>  
</server>  
  • id

    自定義id,表示一個server配置塊,要保證唯一性,與distributionManagement中的repository元素的id匹配

  • username/password

    服務器認證需要的登錄名和密碼,可由私服的RoleUser等控制權限

  • privateKey/passphrase(可選)

    兩個元素指定了一個私鑰的路徑(默認是/home/hudson/.ssh/id_dsa)和一個密語。

  • filePermissions/directoryPermissions(可選)

    權限對應了linux文件系統的權限,瞭解即可,如777.

項目pom文件配置

<scm>
    <connection>
        scm:svn:http://xxx/svn/code/xxx/${project.artifactId}/trunk
    </connection>
    <developerConnection>
       scm:svn:http://xxx/svn/code/xxx/${project.artifactId}/trunk
    </developerConnection>
    <url>
    	http://xxx/svn/code/xxx/${project.artifactId}/trunk
    </url>
</scm>
<distributionManagement>
	<repository>
		<id>releases-id</id>
		<name>Release Repository</name>
		<url>http://192.168.1.11:8081/nexus/content/repositories/releases</url>
	</repository>
	<snapshotRepository>
		<id>snapshot-id</id>
		<name>Snapshot Repository</name>
		<url>http://192.168.1.11:8081/nexus/content/repositories/snapshots</url>
	</snapshotRepository>
</distributionManagement>
  • distributionManagement

    配置發佈到私服的分發倉庫

  • repository

    配置最終版本releases的倉庫,deploy時將項目的最終版本(x.x.x)發佈到releases倉庫

  • snapshotRepository

    配置快照版本snapshot的倉庫,deploy時將項目的快照版本(x.x.x-SNAPSHOT)發佈到snapshots倉庫

注意

  1. distributionManagement中同時配置了releasessnapshot兩個倉庫,但是每次只會有一個生效!因爲你pom文件中的version要麼版本號帶有-SNAPSHOT,要麼只有版本號的0.0.0,因此mavendeploy的時候會根據version後綴來匹配發布到哪個倉庫中。

  2. distributionManagement只配置了releases倉庫,但是pomversion版本號帶有-SNAPSHOT,此時你deploy的話,會報異常,如下異常

  3. nexus私服,選中Repositories,選中Releases的倉庫,在ConfigurationAccess SettingsDeployment Policy配置,默認是Disable Redeploy,表示一個版本只允許上傳一次,不允許覆蓋,否則會報異常如下異常

  4. 異常

    [ERROR] Failed to execute goal org.apache.maven.plugins:maven-deploy-plugin:2.7:deploy 
    		(default-deploy) on project http-push: Failed to deploy artifacts: Could not transfer 
    		artifact com.p7.framework:http-push:jar:2.0.0 from/to releases 
    		(http://192.168.1.11:8081/nexus/content/repositories/releases): Failed to transfer 
    		file: http://192.168.1.11:8081/nexus/content/repositories/releases/com/p7/framework
    		/http-push/2.0.0/http-push-2.0.0.jar. Return code is: 400, ReasonPhrase: Bad Request. -> [Help 1]
    
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章