googlecode deploy to mvn repo

背景

  前段时间在整的BeanMapping,功能开发和单元测试已经基本完善,准备release一个新版本。花了点时间找了下,如何deploy到maven central(http://repo1.maven.org/maven2/),方别客户端使用。

 

在测试过程中,我先找了googlecode自己的svn做为mvn repo进行测试。后续迁移到mvn central repo也只是url和帐号的问题。

过程

我的工程:  http://code.google.com/p/mapping4java/

对应的代码路径: http://mapping4java.googlecode.com/svn/

第一步

我选择googlecode svn做为mvn repo,所以需要预先创建svn目录。

 

svn mkdir https://mapping4java.googlecode.com/svn/maven-repo/snapshots -m "create repo"
svn mkdir https://mapping4java.googlecode.com/svn/maven-repo/releases -m "create repo"

 

注意:

  • 使用的svn url需要以https打头,http为只读不可进行svn提交。

第二步

配置pom.xml,设置repo目录

<distributionManagement>
	<repository>
		<id>googlecode-repo-releases</id>
		<name>Maven Repository Releases</name>
		<url>svn:https://mapping4java.googlecode.com/svn/maven-repo/releases</url>
		<uniqueVersion>false</uniqueVersion>
	</repository>
	<snapshotRepository>
		<id>googlecode-repo-snapshots</id>
		<name>Maven Repository Snapshots</name>
		<url>svn:https://mapping4java.googlecode.com/svn/maven-repo/snapshots</url>
		<uniqueVersion>false</uniqueVersion>
	</snapshotRepository>
</distributionManagement>

注意:

  • 定义repository/snapshotRepository,分别指定url为第一步创建的releases/snapshots目录
  • 注意对应的url为 svn:https://,表明使用svn协议进行提交
  • 注意这里的id设置,需要和后续的第三步相对应

第三步

配置settings.xml,设置repo的帐号密码

 

<servers>
	<server>
      <id>googlecode-repo-releases</id>
      <username>username</username>
      <password>password</password>
    </server>
    <server>
      <id>googlecode-repo-snapshots</id>
      <username>username</username>
      <password>password</password>
    </server>
<servers>

 注意:

  • 对应server.id需要和第二步设置的id相对应

第四步

开始deploy代码,运行: mvn deploy

 

结果:

其他

针对第二步和第三步,可以使用deploy:deploy-file进行替换

 

 

mvn deploy:deploy-file -Durl=file://C:\m2-repo \
                       -DrepositoryId=some.id \
                       -Dfile=your-artifact-1.0.jar \
                       [-DpomFile=your-pom.xml] \
                       [-DgroupId=org.some.group] \
                       [-DartifactId=your-artifact] \
                       [-Dversion=1.0] \
                       [-Dpackaging=jar] \
                       [-Dclassifier=test] \
                       [-DgeneratePom=true] \
                       [-DgeneratePom.description="My Project Description"] \
                       [-DrepositoryLayout=legacy] \
                       [-DuniqueVersion=false]

 

运行的命令:

 

mvn deploy:deploy-file -Dfile="C:\Documents and Settings\Administrator\.m2\repository\com\googlecode\mapping\mapping\1.0-SNAPSHOT\mapping-1.0-SNAPSHOT.jar" 
       -Durl="svn:https://mapping4java.googlecode.com/svn/maven-repo/snapshots" 
       -DrepositoryId=repo-snapshots 
       -DgroupId=com.googlecode.mapping 
       -DartifactId=mapping 
       -DpomFile=pom.xml 
       -Dpackaging=jar -Dversion=1.0-SNAPSHOT

 

注意:

  • -Durl的值和第二步保持一致

相关资料

  1. http://maven.apache.org/plugins/maven-deploy-plugin/usage.html
  2. http://stackoverflow.com/questions/1280470/maven-repository-for-google-code-project
  3. http://www.thewebsemantic.com/2009/04/11/your-very-own-google-code-maven-repo/

如何提交mvn central repo?

1. 参考资料: 

里面建议使用Sonatype OSS Repository做为mvn repo,由sonatype会定时同步到mvn central repo。

具体的配置过程:

基本照着这个文档,很快你就可以deploy你的工程到mvn central repo了。整个过程和前面提到的几步操作类似
相关url : 
提供了一个解决方案,所有的deploy到它的svn repo目录,再由它做为sonatype的一个jira,进行同步。相关讨论:  http://code.google.com/p/support/issues/detail?id=1226

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值