Java開源開發者指南:構建並部署到Maven Central

目錄

創建GitHub帳戶(如果還沒有)
申請Maven Central Repository帳戶
Java Doc
發佈設定(Deployment Config)
GPG
開發者資訊(Developer Information)
源程式碼管理(SCM)
版權宣告(Licenses)
範例POM檔

Sign maven central repository

註冊Namespace

請務必以github進行登入,這樣就可以有免費的…


This content originally appeared on DEV Community and was authored by internetms52

目錄

  • 創建GitHub帳戶(如果還沒有)
  • 申請Maven Central Repository帳戶
  • Java Doc
  • 發佈設定(Deployment Config)
  • GPG
  • 開發者資訊(Developer Information)
  • 源程式碼管理(SCM)
  • 版權宣告(Licenses)
  • 範例POM檔

Sign maven central repository

註冊Namespace

請務必以github進行登入,這樣就可以有免費的namespace可以用

原文
If you do not see this pop-up AND you signed up with GitHub, then Sonatype was able to grant you permissions to the namespace associated with your GitHub identity automatically. As part of your GitHub subscription, GitHub provides you with a github.io domain that reflects your username and allows you to publish GitHub Pages under that domain. Because of this, Sonatype can, in most cases, automatically verify and provision publishing access to a namespace that looks like io.github..

Deployment config

找到namespace

Image description
Image description

務必確保資料一致

<groupId>io.github.internetms52</groupId>
<artifactId>object-pool</artifactId>
<version>0.1.3</version>
<name>object-pool</name>
<packaging>jar</packaging>
<url>https://github.com/internetms52/object-pool-maven-lib</url>
<description>This is a library that implements an Object Pool, and it supports nested object creation as well as constructor specification.</description>

Generate User Token

View Account > Generate User Token
完成後就會取得settings.xml所需的資訊
Image description

指定server(settings.xml)

<settings>
    <servers>
        <server>
            <id>central</id>
            <username>XXXXXX</username>
            <password>YYYYYY</password>
        </server>
    </servers>
</settings>

指定maven central repository server設定(pom.xml)

<plugin>
    <groupId>org.sonatype.central</groupId>
    <artifactId>central-publishing-maven-plugin</artifactId>
    <version>0.5.0</version>
    <extensions>true</extensions>
    <configuration>
        <publishingServerId>central</publishingServerId>
    </configuration>
</plugin>

Java doc

使用Maven Plugin產生Java Doc

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-javadoc-plugin</artifactId>
    <version>3.2.0</version>
    <executions>
        <execution>
            <id>attach-javadocs</id>
            <goals>
                <goal>jar</goal>
            </goals>
        </execution>
    </executions>
</plugin>

GPG

產生GPG Key Pair

sudo apt-get install gnupg
gpg --full-generate-key
gpg --list-keys

GPG簽名plugin

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-gpg-plugin</artifactId>
    <version>3.0.1</version>
    <executions>
        <execution>
            <id>sign-artifacts</id>
            <phase>verify</phase>
            <goals>
                <goal>sign</goal>
            </goals>
            <configuration>
                <gpgArguments>
                    <arg>--pinentry-mode</arg>
                    <arg>loopback</arg>
                </gpgArguments>
            </configuration>
        </execution>
    </executions>
</plugin>

上傳GPG公鑰

GPG的公鑰server有兩個比較有名的

  • pgp.mit.edu
  • keyserver.ubuntu.com
gpg --keyserver hkp://pgp.mit.edu --send-keys F1BD06AB06C36BD5EB53B6E8710DEC40549547D2
gpg: sending key 710DEC40549547D2 to hkp://pgp.mit.edu

gpg --keyserver hkp://keyserver.ubuntu.com --send-keys F1BD06AB06C36BD5EB53B6E8710DEC40549547D2
gpg: sending key 710DEC40549547D2 to hkp://keyserver.ubuntu.com

Developer info

<developers>
    <developer>
        <name>LU.YU HSIN</name>
        <email>yourmail@mail.com</email>
        <organization>internetms52</organization>
        <organizationUrl>https://github.com/internetms52/object-pool-maven-lib</organizationUrl>
    </developer>
</developers>

SCM

<scm>
    <connection>scm:git:git@github.com:internetms52/object-pool-maven-lib.git</connection>
    <developerConnection>scm:git:git@github.com:internetms52/object-pool-maven-lib.git</developerConnection>
    <url>https://github.com/internetms52/object-pool-maven-lib</url>
</scm>

Licenses

<licenses>
    <license>
        <name>Apache License, Version 2.0</name>
        <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
        <distribution>repo</distribution>
    </license>
</licenses>

Example POM

object-pool-maven-lib


This content originally appeared on DEV Community and was authored by internetms52


Print Share Comment Cite Upload Translate Updates
APA

internetms52 | Sciencx (2024-07-29T04:57:09+00:00) Java開源開發者指南:構建並部署到Maven Central. Retrieved from https://www.scien.cx/2024/07/29/java%e9%96%8b%e6%ba%90%e9%96%8b%e7%99%bc%e8%80%85%e6%8c%87%e5%8d%97%ef%bc%9a%e6%a7%8b%e5%bb%ba%e4%b8%a6%e9%83%a8%e7%bd%b2%e5%88%b0maven-central/

MLA
" » Java開源開發者指南:構建並部署到Maven Central." internetms52 | Sciencx - Monday July 29, 2024, https://www.scien.cx/2024/07/29/java%e9%96%8b%e6%ba%90%e9%96%8b%e7%99%bc%e8%80%85%e6%8c%87%e5%8d%97%ef%bc%9a%e6%a7%8b%e5%bb%ba%e4%b8%a6%e9%83%a8%e7%bd%b2%e5%88%b0maven-central/
HARVARD
internetms52 | Sciencx Monday July 29, 2024 » Java開源開發者指南:構建並部署到Maven Central., viewed ,<https://www.scien.cx/2024/07/29/java%e9%96%8b%e6%ba%90%e9%96%8b%e7%99%bc%e8%80%85%e6%8c%87%e5%8d%97%ef%bc%9a%e6%a7%8b%e5%bb%ba%e4%b8%a6%e9%83%a8%e7%bd%b2%e5%88%b0maven-central/>
VANCOUVER
internetms52 | Sciencx - » Java開源開發者指南:構建並部署到Maven Central. [Internet]. [Accessed ]. Available from: https://www.scien.cx/2024/07/29/java%e9%96%8b%e6%ba%90%e9%96%8b%e7%99%bc%e8%80%85%e6%8c%87%e5%8d%97%ef%bc%9a%e6%a7%8b%e5%bb%ba%e4%b8%a6%e9%83%a8%e7%bd%b2%e5%88%b0maven-central/
CHICAGO
" » Java開源開發者指南:構建並部署到Maven Central." internetms52 | Sciencx - Accessed . https://www.scien.cx/2024/07/29/java%e9%96%8b%e6%ba%90%e9%96%8b%e7%99%bc%e8%80%85%e6%8c%87%e5%8d%97%ef%bc%9a%e6%a7%8b%e5%bb%ba%e4%b8%a6%e9%83%a8%e7%bd%b2%e5%88%b0maven-central/
IEEE
" » Java開源開發者指南:構建並部署到Maven Central." internetms52 | Sciencx [Online]. Available: https://www.scien.cx/2024/07/29/java%e9%96%8b%e6%ba%90%e9%96%8b%e7%99%bc%e8%80%85%e6%8c%87%e5%8d%97%ef%bc%9a%e6%a7%8b%e5%bb%ba%e4%b8%a6%e9%83%a8%e7%bd%b2%e5%88%b0maven-central/. [Accessed: ]
rf:citation
» Java開源開發者指南:構建並部署到Maven Central | internetms52 | Sciencx | https://www.scien.cx/2024/07/29/java%e9%96%8b%e6%ba%90%e9%96%8b%e7%99%bc%e8%80%85%e6%8c%87%e5%8d%97%ef%bc%9a%e6%a7%8b%e5%bb%ba%e4%b8%a6%e9%83%a8%e7%bd%b2%e5%88%b0maven-central/ |

Please log in to upload a file.




There are no updates yet.
Click the Upload button above to add an update.

You must be logged in to translate posts. Please log in or register.