3

リリースを 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:
4

1 に答える 1

7

したがって、これは実際には、git でホストされているオープン ソース プロジェクトのリリースをSonatype maven リポジトリにプッシュするために実行しなければならなかったプロセスのブレイン ダンプです。ここにあるほとんどすべては個別の StackOverflow の質問でカバーされていますが、(私のように) 初めてこれを行う人にとっては、概要が役に立ちます。

プロセス全体は、実際には次の 2 つのコマンドだけです。

  • mvn リリース:準備
  • mvn リリース:実行

しかし、私を捕まえたのは面倒な詳細です。だから、これは私が従う必要があったプロセスです:

  1. プロジェクトへのすべての変更をチェックインします。プッシュされていないローカル変更がある場合、Maven は文句を言います。
  2. git に SSH 公開鍵があることを確認してください。これにより、エラーが修正または防止されPermission denied (publickey).ます。
  3. プロジェクトのバージョンが SNAPSHOT であることを確認し、release.properties ファイルが存在する場合は削除します。これにより、エラーが修正または防止されgit-commit command failed.ます。
  4. 上記の Maven コマンドを実行します。
  5. ~/.m2/settings.xm に GPG キーの詳細を追加しました。完全なファイルを以下に示します。
  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>
于 2012-10-03T22:52:58.213 に答える