龙空技术网

如何发布自己的项目到MAVEN中央库

青莲子 115

前言:

眼前大家对“服务器如何发布网站”大约比较讲究,朋友们都需要剖析一些“服务器如何发布网站”的相关内容。那么小编同时在网络上搜集了一些对于“服务器如何发布网站””的相关知识,希望咱们能喜欢,大家一起来学习一下吧!

第一步 注册域名及 OSS 账号首先你得要有一个自己的独立域名。上 注册自己的账号,注意:sonatype对账号的密码的格式要求极高,注册时记得保存好自己的密码在本子上。第二步 创建发布的工作任务(issue)

上oss后台创建工作任务(Issue):

Project: Open Source Project Repository Hosting (OSSRH)

Issue Type: New Project

例如:

提交成功后,OSS 的工作人员会在这个 ISSUE 回复你,要求你在自己提交的域名配置 TXT 记录:

比如我的 artfii.com 是在阿里云申请,则进入到阿里云后台增加 域名的DNS设置:

配置是否成功可用这个命令测试 : host -t txt xxxx.com

如果成功了,OSS 工作人员会回复你,说仓库已经准备好了,请把内容推送到:

第三步 修正项目的 POM 配置

增加许可协议、SCM信息、开发者信息

 <properties>        <scm.url>git@gitee.com:artlongs/amq.git</scm.url>        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>        <maven.compiler.source>1.8</maven.compiler.source>        <maven.compiler.target>1.8</maven.compiler.target>        <javadocExecutable>${java.home}/../bin/javadoc</javadocExecutable>    </properties>    <developers>        <developer>            <name>QingFeng Li (leeton)</name>            <email>mailtous@163.com</email>            <organization>artfii.com</organization>        </developer>    </developers>    <licenses>        <license>            <name>The Apache Software License, Version 2.0</name>            <url>;/url>            <distribution>repo</distribution>        </license>    </licenses>    <scm>        <connection>scm:git:${scm.url}</connection>        <developerConnection>scm:git:${scm.url}</developerConnection>        <url>${scm.url}</url>    </scm>    <distributionManagement>        <snapshotRepository>            <id>ossrh</id>            <url>;/url>        </snapshotRepository>        <repository>            <id>ossrh</id>            <url>;/url>        </repository>    </distributionManagement>

注意: repository 的 id 要跟 maven setting 文件配置的 oss 权限 ID 相同,例如这里使用的是:ossrh .

修改 build 节,增加发布,GPG 认证相关信息:

<build>        <finalName>${project.artifactId}-${project.version}</finalName>        <pluginManagement>            <plugins>                <plugin>                    <artifactId>maven-clean-plugin</artifactId>                    <version>3.1.0</version>                </plugin>                <plugin>                    <artifactId>maven-resources-plugin</artifactId>                    <version>3.0.2</version>                </plugin>                <plugin>                    <artifactId>maven-surefire-plugin</artifactId>                    <version>2.22.1</version>                </plugin>                <plugin>                    <artifactId>maven-jar-plugin</artifactId>                    <version>3.0.2</version>                </plugin>                <plugin>                    <artifactId>maven-install-plugin</artifactId>                    <version>2.5.2</version>                </plugin>                <plugin>                    <artifactId>maven-deploy-plugin</artifactId>                    <version>2.8.2</version>                </plugin>                <plugin>                    <artifactId>maven-site-plugin</artifactId>                    <version>3.7.1</version>                </plugin>                <plugin>                    <artifactId>maven-project-info-reports-plugin</artifactId>                    <version>3.0.0</version>                </plugin>                <plugin>                    <groupId>org.apache.maven.plugins</groupId>                    <artifactId>maven-compiler-plugin</artifactId>                    <version>3.8.0</version>                    <configuration>                        <source>1.8</source>                        <target>1.8</target>                        <optimize>true</optimize>                        <encoding>UTF-8</encoding>                        <showWarnings>false</showWarnings>                        <showDeprecation>true</showDeprecation>                        <meminitial>128m</meminitial><!-- 编译器使用的初始内存 -->                        <maxmem>512m</maxmem><!-- 编译器使用的最大内存 -->                    </configuration>                    <inherited>true</inherited>                </plugin>                <plugin>                    <groupId>org.codehaus.mojo</groupId>                    <artifactId>versions-maven-plugin</artifactId>                    <version>2.3</version>                    <configuration>                        <generateBackupPoms>false</generateBackupPoms>                    </configuration>                </plugin>                <!-- sonatype maven repo -->                <plugin>                    <groupId>org.sonatype.plugins</groupId>                    <artifactId>nexus-staging-maven-plugin</artifactId>                    <version>1.6.7</version>                    <extensions>true</extensions>                    <configuration>                        <serverId>ossrh</serverId>                        <nexusUrl>;/nexusUrl>                        <autoReleaseAfterClose>true</autoReleaseAfterClose>                    </configuration>                </plugin>                <plugin>                    <groupId>org.apache.maven.plugins</groupId>                    <artifactId>maven-source-plugin</artifactId>                    <version>2.2.1</version>                    <executions>                        <execution>                            <id>attach-sources</id>                            <goals>                                <goal>jar-no-fork</goal>                            </goals>                        </execution>                    </executions>                </plugin>                <plugin>                    <groupId>org.apache.maven.plugins</groupId>                    <artifactId>maven-javadoc-plugin</artifactId>                    <version>3.0.1</version>                    <executions>                        <execution>                            <id>attach-javadocs</id>                            <goals>                                <goal>jar</goal>                            </goals>                        </execution>                    </executions>                </plugin>                <!-- GPG -->                <plugin>                    <groupId>org.apache.maven.plugins</groupId>                    <artifactId>maven-gpg-plugin</artifactId>                    <version>1.5</version>                    <executions>                        <execution>                            <id>sign-artifacts</id>                            <phase>verify</phase>                            <goals>                                <goal>sign</goal>                            </goals>                        </execution>                    </executions>                </plugin>                <plugin>                    <groupId>org.apache.maven.plugins</groupId>                    <artifactId>maven-deploy-plugin</artifactId>                    <version>2.8.2</version>                    <configuration>                        <skip>true</skip>                    </configuration>                </plugin>            </plugins>        </pluginManagement>    </build>修改自己的 maven setting 文件,增加在 OSS 的账号密码:

第四步,修改自己的 maven setting 文件,增加在 OSS 的账号密码:

<server>  <id>ossrh</id>  <username>Sonatype账号</username>  <password>Sonatype密码</password></server>
第五步,生成 gpg

苹果机子可以到 pc6网站下载 GPG Suite Mac版,安装好后可以使用 gpg --list-keys 命令来查询自己配置的key,记下这个key 用下面命令把key 注册到公共中心:

gpg --keyserver hkp://keyserver.ubuntu.com:11371 --send-keys 你的key

第六步 打包Deploy

使用 mvn clean deploy -P <profile-id> 命令,一键打包。

打包过程中会要求输入gpg密钥的Passphase信息,输入即可

第七步 发布Release

进入查看发布好的构件,点击左侧的Staging Repositories,一般最后一个就是刚刚发布的jar了,此时的构件状态为 Open

选中构件,并点击上方的 Close–>Confirm 在下边的Activity选项卡中查看状态。

当状态变成closed后,执行 Release–>Confirm 并在下边的Activity选项卡中查看状态。

成功后构件自动删除,一小段时间(约1-2个小时)后即可同步到maven的中央仓库。届时会有邮件通知。

至此,发布到Maven中央仓库完成。

##第七步 扫尾工作

对第二步提交的Issue增加Comment,留言致谢并表示发布已经完成,请工作人员关闭Issue。

在以下两个网站可以对自己上传的包进行搜索。

标签: #服务器如何发布网站