ワンクリックで独自の Jar を Maven Central Warehouse に公開します

もちろん、Java 開発を実行することは、jarパッケージ管理と切り離すことができませんが、いつ自分のjarパッケージをパッケージ化し
て、他の人が使用できるように Maven 中央ウェアハウスに公開する必要があるかわかりません。

ああ、jarパッケージ ツールを書いて、多くの人に使われるのはとても良いことだし、とても幸せなことだと感じています。

ようやくこの機会と時間ができました。SpringBoot staterシーン スターターに基づいて、独自のステーター コンポーネントを簡単に定義し、Maven リポジトリに公開することもできます。誰もが使えるように。

私はプログラマーとして長年働いてきたので、ツール ライブラリ stater を要約して作成しました。

Githubアドレス

これを基にSpringBoot WEB APIを簡単に開発し、効率化を図ることができます。もう面倒なことは気にしないでください。仕事は重複しますが、ビジネスに集中してください。

本題に戻りますが、この記事は私の記事に基づいています。それについてはステーターに話してもらいましょう。自己定義のステーターを Maven 中央ウェアハウスに公開する方法。

sonatype アカウントを登録する

issues.sonatype.orgと入力して自分のアカウントを登録し、このプラットフォームに基づいて Maven ウェアハウスにすぐに公開します

登録が完了したら、アカウントのパスワードを覚えておいてください。後でリリースするには認証が必要です

独自の Maven プロジェクト作業指示書を作成する

登録が完了したら、自分自身を作成し​​、mavenプロジェクトを公開して、「新規」をクリックします。

プロジェクトの選択: コミュニティ サポート - オープン ソース プロジェクト リポジトリ ホスティング (OSSRH)

質問タイプの選択: 新しいプロジェクト

* は必須項目です。残りは空白のままにするかデフォルトのままにし、新しい作業指示を作成して管理者のレビューを待ちます。

プロジェクト アドレス プロジェクトの Github ウェアハウス アドレスを入力します。ここでもグループ ID を入力することが強調されていますが、グループ ID は独自のドメイン名またはオープン ソース ウェアハウスのアドレスに従って入力する必要があります。

質問の後半 - 私のレポートでは問題の監査ステータスを追跡できます

管理者のレビューを待っています。監査が完了すると、管理者はドメイン名が自分のものであることを確認するか、gitee または github スペースが自分のものであることを証明するように求めます。

Maven 作業指示プロジェクトを閉じる

Maven 作業指示書プロジェクトが承認されると、電子メールによるリマインダーが送信されます。

問題の作成が成功したら、Sonatype スタッフによるレビューを待つ必要があります。レビューにかかる時間は数分程度です (私は 5 分でしたが、数時間かかった人もいたようです...)。 、問題のステータスが「解決済み」に変わり、次のステップ「操作済み」に進むことができます。

質問をクリックすると、新しく作成した独自のプロジェクトが見つかります。

次に、「応答」ボタンをクリックしてチケットを開き、管理者に確認させます。

検証が完了するまで待ちます。その後、管理者から検証が成功した旨の返信が届きます。これは、作業指示書が合格し、プロジェクトをアップロードできることを意味します。

ドメイン名を使用する場合、管理者はドメイン名に TXT 解決を追加するように求め、それを確認します。

問題ありません。この時点で質問を閉じても問題ありません

プロジェクト構成

Maven 構成

Maven 設定ファイルで登録済みのissues.sonatype.orgアカウントのパスワードを設定します。

maven conf フォルダー配下のsettings.xmlファイルのサーバーノード構成は以下のとおりです。

 <server>
      <id>snapshots</id>
      <username>kenx</username>
      <password>xxxx</password>
    </server>
    <server>
      <id>releases</id>
      <username>kenx</username>
      <password>xxxx</password>
    </server>
    <server>
      <id>ossrh</id>
      <username>kenx</username>
      <password>xxx</password>
    </server>

キー構成

gpg を使用して秘密鍵を生成する

プロジェクトのアップロードには秘密鍵署名認証が必要です。パスワードはローカルで生成する必要があります。そして、公開キーをサービスにアップロードします。

キーを生成する

gpg --gen-key

gpg を実行すると、暗号化アルゴリズム、有効期限などを選択する必要がありますが、デフォルト値を直接選択することもできます。比較すると、gpg 2.0 より上のバージョンで gpg --gen-key コマンドを実行すると、これらの手順がスキップされることがわかります。

その後、gpg は名前、電子メール アドレス、およびキーのパスフレーズ (このパスワードは後で役立つため、自分で覚えておく必要があります) を入力するよう要求し、順番に入力できます。次に、gpg がキーのペアを生成します。

ビューキー

gpg --list-keys

pub フィールドの下に 16 進数があり、これがこのキーの ID です。

次に、次のコマンドを使用して、この秘密キーを公開キー サーバーにアップロードする必要があります。

gpg --keyserver keyserver.ubuntu.com --send-keys 秘钥ID

サーバーへのアップロードが成功したことを確認します。

gpg --keyserver keyserver.ubuntu.com --recv-keys 秘钥ID

2 つのコマンドの出力結果が次の場合、成功したことを意味します。

以上で秘密鍵の設定は完了です。

プロジェクトの pom 構成を変更する

次に、プロジェクトで pom ファイルを設定する必要があります。

<groupId>cn.soboys</groupId>
    <artifactId>rest-api-spring-boot-starter</artifactId>
    <version>1.3.0</version>
    <packaging>jar</packaging>
    <name>rest-api-spring-boot-starter</name>
    <description>SpringBoot Easy Fast Rest WEB 提高SpringBoot Web开发工作效率 RestFull API使用 全局错误拦截,参数校验, 错误国际化 ,自定义错误响应 ,业务异常断言 ,Redis 工具库使用 ,RestTemplate 请求工具 ,日志使用 ,集成mybatisPlus一键代码生成</description>
    <url>https://github.com/coder-amiao/rest-api-spring-boot-starter</url>

    <!-- 项目设定 -->
    <properties>
        <java.version>1.8</java.version>
        <maven.compiler.source>${java.version}</maven.compiler.source>
        <maven.compiler.target>${java.version}</maven.compiler.target>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

        <gpg.passphrase>1234qwer</gpg.passphrase>
        <gpg.keyname>E933FBC878FB2EC0900A2ABAF79C3CD9E9E6A8EF</gpg.keyname>
        <gpg.homedir>/Users/xiangyong/.gnupg</gpg.homedir>
    </properties>



    <!-- 许可证信息,这里是Apache 2.0的许可证,大家根据实际情况修改 -->
    <licenses>
        <license>
            <name>The Apache Software License, Version2.0</name>
            <url>https://www.apache.org/licenses/</url>
            <distribution>repo</distribution>
        </license>
    </licenses>


    <!--   开发人员信息         -->
    <developers>
        <developer>
            <name>三时</name>
            <email>[email protected]</email>
        </developer>
    </developers>

    <!--   项目仓库信息         -->
    <scm>
        <connection>scm:git:https://github.com/zw201913/jtile38.git</connection>
        <developerConnection>https://github.com/coder-amiao/rest-api-spring-boot-starter</developerConnection>
        <url>https://github.com/coder-amiao/rest-api-spring-boot-starter.git</url>
        <tag>v${project.version}</tag>
    </scm>

    <!-- 中央仓库地址配置,不需要修改 -->
    <distributionManagement>
        <snapshotRepository>
            <id>ossrh</id>
            <url>https://s01.oss.sonatype.org/content/repositories/snapshots</url>
        </snapshotRepository>

        <repository>
            <id>ossrh</id>
            <url>https://s01.oss.sonatype.org/service/local/staging/deploy/maven2/</url>
        </repository>
    </distributionManagement>

<build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                </configuration>
            </plugin>
            <!-- Source -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-source-plugin</artifactId>
                <version>2.2.1</version>
                <executions>
                    <execution>
                        <phase>package</phase>
                        <goals>
                            <goal>jar-no-fork</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
            <!-- Javadoc工具 -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-javadoc-plugin</artifactId>
                <version>2.10.4</version>
                <configuration>
                    <additionalJOptions>
                        <additionalJOption>-Xdoclint:none</additionalJOption>
                    </additionalJOptions>
                </configuration>
                <executions>
                    <execution>
                        <phase>package</phase>
                        <goals>
                            <goal>jar</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
            <!-- GPG -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-gpg-plugin</artifactId>
                <version>1.6</version>
                <configuration>
                    <gpgArguments>
                        <arg>--pinentry-mode</arg>
                        <arg>loopback</arg>
                    </gpgArguments>
                </configuration>
                <executions>
                    <execution>
                        <id>sign-artifacts</id>
                        <phase>verify</phase>
                        <goals>
                            <goal>sign</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>

構成されたgroupId は、以前に作成した Maven プロジェクトの作業指示書と一致している必要があることに注意してください。

pom.xml には、リリース時のみ Maven のプロファイル機能を使用し、ソース コード パッケージ、ドキュメント パッケージを作成し、デジタル署名に GPG を使用する、名前、説明、URL、ライセンス、開発者、SCM などの基本情報を含める必要があります。

さらに、snapshotRepository およびリポジトリの ID は、setting.xml のサーバー ID と一致している必要があります。

マルチモジュール プロジェクトの場合、これらを親 pom.xml で宣言し、子 pom.xml 内の対応する情報 (名前タグなど) を変更するだけで済みます。

プロジェクトのリリース

次に、deploy を使用してプロジェクトを公開できます

またはコマンド

mvn clean deploy

プロジェクトを中央リポジトリに公開する

上記の手順はプロジェクトを Sonatype に転送するだけであり、まだリリースされていません。

s01.oss.sonatype.orgと入力してログインします。アカウントは、以前に登録したアカウントのユーザー名とパスワードです。

その横にある「ステージング リポジトリ」をクリックすると、公開されたプロジェクトが表示されます。

項目にチェックを入れて閉じるボタンをクリックすると項目の検証が始まります。

次に、以下のアクティブなラベルをクリックして、クローズの進行状況を表示します。

「All rules pass: Central Sync Requirement」が表示された場合は、検証に合格し、公開できることを意味します。

処理ボタンがグレーになっている場合、またはクリックできない場合は、更新を繰り返してお待ちください (ネットワークなどの他の理由が原因である可能性があります)。その後、上記の手順を繰り返します。できる

次に、上のリリース ボタンをクリックして中央ウェアハウスに公開します。

完了後、約 2 時間後に、公開されたプロジェクトがsearch.maven.orgで見つかるようになります。

まとめ

プロジェクトを公開した後、groupId が変更されない場合は、作業指示を申請する必要はありません。

上記のステップ 2、3、4 の重要なステップの一部を繰り返すだけです。

上記のsettings.xmlにはサーバーが構成されています

再度設定する必要はありません。つまり、settings.xml を設定する 2 番目の手順は省略できます。秘密鍵は既に生成されており、再度生成する必要はなく、秘密鍵生成の第3段階も不要である。ただし、コンピューターを変更した場合は、settings.xml を再構成し、秘密キーを再生成してアップロードする必要があります。

公式アカウントに注目してください。プログラマーは、あなたにインスピレーションと助けをもたらすことを願って、 3時に高品質のコンテンツを出力し続けます

おすすめ

転載: blog.csdn.net/u011738045/article/details/131620029