最新SpringBoot上传Maven中央仓库,在其他项目直接引入依赖(github开源项目打包上传,不需要私服)

方式(条件)如下

github

maven/idea

gpg

1、要有github账号

https://github.com/

2、使用github进行登录中央仓库

https://central.sonatype.com/

登录

使用github登录

  • 按照提示登录完成后进行选择Namespaces

  • 创建完namespace属于未验证状态,只有验证状态的namespace才可以发布jar。后面有个验证按钮,正常验证即可

  • 可以看到自己的namespaces

  • 到时候引入pom如下

    <dependency> <groupId>io.github.weibanggang</groupId> <artifactId>你的项目xxx</artifactId> <version>你的发布版本</version> </dependency>

3、下载GPG

https://gnupg.org/download/index.html

安装好后进行cmd生成key,等会maven的settings配置文件要用到

生成GPG密码完成继续

4、maven配置文件配置( settings.xml)

先创建账号密码,创建完成后使用

settings.xml加入以下信息

复制代码
  <servers>
    <server>
      <id>gpg</id>
      <username>生成的账号</username>
      <password>生成的密码</password>
    </server>
  </servers>
  <profile>
    <id>gpg</id>
    <properties>
       <!--这里是gpg的路径-->
      <gpg.executable>C:/Program Files (x86)/GnuPG/bin/gpg.exe</gpg.executable>
      <gpg.passphrase>gpg生成的密码</gpg.passphrase>
    </properties>
  </profile>
</profiles>
<activeProfiles>
  <activeProfile>gpg</activeProfile>
</activeProfiles>

5、发布POM必备

复制代码
    <distributionManagement>
        <snapshotRepository>
            <id>gpg</id>
            <url>https://s01.oss.sonatype.org/content/repositories/snapshots</url>
        </snapshotRepository>
        <repository>
            <id>gpg</id>
            <url>https://s01.oss.sonatype.org/service/local/staging/deploy/maven2/</url>
        </repository>
    </distributionManagement>

    <build>
        <resources>
            <resource>
                <directory>src/main/java</directory>
                <includes>
                    <include>**/*.xml</include>
                </includes>
                <filtering>false</filtering>
            </resource>
        </resources>
        <plugins>
            <!-- 编译插件 -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.8.1</version>
            </plugin>

            <!-- 源码包 -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-source-plugin</artifactId>
                <version>3.2.1</version>
                <executions>
                    <execution>
                        <id>attach-sources</id>
                        <goals>
                            <goal>jar</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>

            <!-- javadoc 包 -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-javadoc-plugin</artifactId>
                <version>3.5.0</version>
                <executions>
                    <execution>
                        <id>attach-javadocs</id>
                        <goals>
                            <goal>jar</goal>
                        </goals>
                    </execution>
                </executions>
                <configuration>
                    <encoding>UTF-8</encoding>
                    <source>17</source>
                    <docencoding>UTF-8</docencoding>
                    <charset>UTF-8</charset>
                    <failOnError>false</failOnError>
                    <failOnWarnings>false</failOnWarnings>
                    <quiet>true</quiet>
                    <additionalJOption>--enable-preview</additionalJOption>
                    <additionalJOption>-Xdoclint:none</additionalJOption>
                    <additionalJOption>-Xdoclint:all,-missing</additionalJOption>
                    <additionalJOption>-Xdoclint:none</additionalJOption>
                    <additionalJOption>-quiet</additionalJOption>
                    <additionalJOption>-noqualifier</additionalJOption>
                    <additionalJOption>all</additionalJOption>
                    <additionalJOption>-Xdoclint:all,-missing,-accessibility</additionalJOption>
                    <additionalJOption>-Xdoclint:none</additionalJOption>
                    <additionalJOption>-Xdoclint:all,-missing,-accessibility,-syntax,-reference</additionalJOption>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-deploy-plugin</artifactId>
                <version>3.1.0</version>
            </plugin>
            <!-- GPG -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-gpg-plugin</artifactId>
                <version>1.6</version>
                <configuration>
                    <!-- 改成你自己的路径 -->
                    <executable>C:/Program Files (x86)/GnuPG/bin/gpg.exe</executable>
                </configuration>
                <executions>
                    <execution>
                        <phase>verify</phase>
                        <goals>
                            <goal>sign</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
            <!-- 生成校验文件 -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-install-plugin</artifactId>
                <version>3.1.3</version>
                <configuration>
                    <createChecksum>true</createChecksum>
                </configuration>
            </plugin>

            <plugin>
                <groupId>org.sonatype.central</groupId>
                <artifactId>central-publishing-maven-plugin</artifactId>
                <version>0.4.0</version>
                <extensions>true</extensions>
                <configuration>
                    <!-- 这里的serverId是之前在本地settings.xml中配置的<server><id>标签值(上述三(1)步骤) -->
                    <publishingServerId>gpg</publishingServerId>
                    <tokenAuth>true</tokenAuth>
                </configuration>
            </plugin>

            <!-- 校验文件生成插件 -->
            <plugin>
                <groupId>net.nicoulaj.maven.plugins</groupId>
                <artifactId>checksum-maven-plugin</artifactId>
                <version>1.11</version>
                <executions>
                    <execution>
                        <id>create-checksums</id>
                        <phase>package</phase>
                        <goals>
                            <goal>artifacts</goal>
                        </goals>
                        <configuration>
                            <algorithms>
                                <algorithm>MD5</algorithm>
                                <algorithm>SHA1</algorithm>
                            </algorithms>
                            <attachChecksums>true</attachChecksums>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>

最后使用idea进行

发布完成后

去发布即可

相关推荐
952365 小时前
MyBatis
后端·spring·mybatis
uzong8 小时前
9 种 RAG 架构,每位 AI 开发者必学:完整实战指南
后端
HackTorjan8 小时前
深度神经网络的反向传播与梯度优化原理
人工智能·spring boot·神经网络·机器学习·dnn
小江的记录本8 小时前
【Kafka核心】架构模型:Producer、Broker、Consumer、Consumer Group、Topic、Partition、Replica
java·数据库·分布式·后端·搜索引擎·架构·kafka
止语Lab8 小时前
从手动到框架:Go DI 演进的三个拐点
开发语言·后端·golang
计算机魔术师11 小时前
【AI面试八股文 Vol.1.3:ReAct】ReAct 不是一种算法,是一种工程契约:从问题域到面试追问的完整映射
开源
James_WangA11 小时前
我给 AOI 设备装了一个 Agent,然后发现工具注册才是最难写的
架构·github
James_WangA11 小时前
产线上跑 Agent:LLM 挂了不是 500 错误,是停线
架构·github
Vane111 小时前
五一假期无聊?我用 Rust 手搓了一个并发下载器
开源
Daybreak11 小时前
Elasticsearch 里的索引和 Mapping,到底是什么关系?
后端