2012-10-03 36 views
3

虽然试图推动释放到Maven的,我得到一些错误,包括:在Maven中发布多个错误?

Permission denied (publickey). 
fatal: The remote end hung up unexpectedly 

[INFO] ------------------------------------------------------------------------ 
[ERROR] BUILD FAILURE 
[INFO] ------------------------------------------------------------------------ 
[INFO] Unable to commit files 
Provider message: 
The git-commit command failed. 
Command output: 

回答

7

所以这真的只是过程中的大脑转储我不得不去通过对将一个托管在git上的开源项目的发布推入Sonatype maven repo。这里几乎所有的东西都在单独的StackOverflow问题中讨论过,但对于第一次这样做的人来说,总览很有用。

整个过程实际上就是两个命令:

  • MVN发布:准备
  • MVN发布:执行

然而,就这么抓我出来的繁琐细节。所以这是我需要遵循的过程:

  1. 检入对项目的所有更改。如果有任何未经修改的本地变更,Maven将会投诉。
  2. 确保你有SSH public key in git。这将修复或防止Permission denied (publickey).错误。
  3. 确保您的项目版本是SNAPSHOT并删除release.properties文件(如果存在)。这将修复或防止出现git-commit command failed.错误。
  4. 运行上面列出的Maven命令。
  5. 我将GPG密钥的详细信息添加到〜/ .m2/settings.xm。下面列出了完整的文件。
  6. 此时您将在暂存区域中等待未签名的人造物。我只是上载父POM文件,所以我需要用命令mvn -Pgpg gpg:sign-and-deploy-file -Durl=https://oss.sonatype.org/service/local/staging/deploy/maven2/ -DrepositoryId=sonatype-nexus-staging -DpomFile=pom.xml -Dfile=pom.xml
  7. 再签收现在在https://docs.sonatype.org/display/Repository/Sonatype+OSS+Maven+Repository+Usage+Guide#SonatypeOSSMavenRepositoryUsageGuide-8a.ReleaseIt

与指令释放它这是在〜/ .m2目录/ settings.xml文件。

<settings> 
    <servers> 
     <server> 
      <id>sonatype-nexus-snapshots</id> 
      <username>username</username> 
      <password>password</password> 
     </server> 
     <server> 
      <id>sonatype-nexus-staging</id> 
      <username>username</username> 
      <password>password</password> 
     </server> 
    </servers> 
    <profiles> 
     <profile> 
      <id>gpg</id> 
      <properties> 
       <gpg.passphrase>password</gpg.passphrase> 
       <gpg.keyname>12345678</gpg.keyname> 
      </properties> 
     </profile> 
    </profiles> 
</settings> 
+0

即使在生成SSH并在Github上添加.pub内容后,我仍然收到一个Putty对话框,指出没有可用的身份验证方法。服务器发送publickey'。你能帮忙吗? –