前段时间在整的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"
注意:
配置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>
注意:
配置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>
注意:
开始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
注意:
1. 参考资料:
里面建议使用Sonatype OSS Repository做为mvn repo,由sonatype会定时同步到mvn central repo。
具体的配置过程: