将本地jar发布到远程maven仓库【详细】
前情提示mac big sur;idea version 2020.1+maven3.6;gpg suite;文中module代码为示例demo,自己也可以随便找个,进行测试;文末有配置文件;启用最新地址:s01.oss.sonatype.org已安装idea:已安装maven:一句话建jira账号 - 建GPG账号 - 复制pom.xml文末有 - 点击deploy注册账号https://is
前情提示
mac big sur;
idea version 2020.1+
maven3.6;
gpg suite;
文中module代码为示例demo,自己也可以随便找个,进行测试;
文末有配置文件;
启用最新地址:s01.oss.sonatype.org
已安装idea:
已安装maven:
图片不显示,直接右键转到该地址,或者访问https://www.pusdn.com
一说
-
同步更新最新版、完整版请移步PUSDN Powered By PUSDN - 平行宇宙软件开发者网www.pusdn.com ,转载请标明出处! -
部分截图、链接等因过期、更换域名、MD语法等可能不显示,可联系反馈(备注好博文地址),谢谢❤
-
带有
#号、删除线、不操作、不执行字样的为提示或者备份bash,实际不执行
一句话
建jira账号 - 建GPG账号 - 复制pom.xml文末有 - 点击deploy
注册账号
https://issues.sonatype.org/secure/Dashboard.jspa

根据提示,选择中文,如下图:

创建issue
点击右上角create,按照提示填写。
或者登录状态下点击:https://issues.sonatype.org/secure/CreateIssue.jspa?issuetype=21&pid=10134


摘要summary:随意填写,或者复制以下内容
Upload jar packages to maven central repository
描述description:
我需要将jar上传到maven中央存储库,然后通过maven远程下载依赖项提供Java项目来运行项目,因此我想创建一个新项目来保存jar。
另外,我想问下,如果我不想提供源代码,该如何操作?
I need to upload the jar to the maven central repository and then provide my Java project to run the project via maven remote download dependencies, so I want to create a new project to hold the jar.
In addition, I would like to ask, if I do not want to provide the source code, how to operate?
group ID建议填写:推荐GitHub
io.github.你的用户名
第二种:自己的域名
需要设置TXT记录,

Project URL:项目地址,例如:https://github.com/项目名
SCM url :填写git地址,例如[https://github.com/sonatype/nexus-public.git](https://github.com/sonatype/nexus-public.git)
Username(s):不填写,您自己和您希望能够将工件部署到这个groupId的任何人的JIRA用户名的逗号分隔列表。
其他默认即可。
验证group ID
记得填写了刚才的域名了吗,这一步主要验证域名所有权。第一种是使用io.github.xxx,第二种自定义域名。
这里提示下:因为使用了com.xx顶级域名,所以以后com.xx.aa.bb以下子域名都可以直接创建。~好像是这样,忘了在哪里无意间看到的~
设置域名TXT记录(自定义域名)
如果使用了自定义域名,需要设置域名解析。一般提交issue后1分钟左右会告诉你,ticket ID,填写解析即可。如下图:需要改成自己的,记录值:可以填写自己的issue地址,也可以填写GitHub地址。这里我添加了2条TXT记录,等待约30分钟后,会收到通过通知。


使用io.github.xx
如果使用这个,需要在GitHub上创建公开的仓库,仓库名就是发给的ticket ID,如下图:

使用其他域名
比如使用了其他的GitHub pages,比如gitee,coding,gitlab,bitbucket等等。配置同GitHub。详见:https://central.sonatype.org/publish/requirements/#scm-information
这些都是申请maven的,如下图:

安装GPG
https://www.gnupg.org/download/index.html
去官网安装可视化客户端,免去输入命令麻烦!
Windows和Mac如下图:
Windows直达:https://www.gpg4win.org/download.html
Mac直达:https://gpgtools.org/

创建账号密码,个人猜测邮件密码随便输入,不需要和jira邮箱一致。这个密码后续第一次deploy时候会有提示框需要输入。这里,我输入邮件同jira.

上传推送给第三方key server,方便别人验证。


配置maven
https://central.sonatype.org/publish/publish-maven/
maven/conf/setting.xml,增加如下图:

部署
可以使用maven命令或者直接idea - maven - lifecycle - deploy

第一次,会提示输入密码,输入刚才创建的GPG密码。

执行过程日志:
/Library/Java/JavaVirtualMachines/jdk1.8.0_231.jdk/Contents/Home/bin/java -Dmaven.multiModuleProjectDirectory=/Users/janeyork/PRO/pusdn-center/pgz/RuoYi-Vue-master-3/pgz-common -Dmaven.home=/Users/janeyork/DEV/apache-maven-3.6.2 -Dclassworlds.conf=/Users/janeyork/DEV/apache-maven-3.6.2/bin/m2.conf "-Dmaven.ext.class.path=/Applications/IntelliJ IDEA.app/Contents/plugins/maven/lib/maven-event-listener.jar" "-javaagent:/Applications/IntelliJ IDEA.app/Contents/lib/idea_rt.jar=58980:/Applications/IntelliJ IDEA.app/Contents/bin" -Dfile.encoding=UTF-8 -classpath /Users/janeyork/DEV/apache-maven-3.6.2/boot/plexus-classworlds-2.6.0.jar org.codehaus.classworlds.Launcher -Didea.version2020.1 -s /Users/janeyork/DEV/apache-maven-3.6.2/conf/settings.xml -Dmaven.repo.local=/Users/janeyork/DEV/MavenRepository deploy
[INFO] Scanning for projects...
[INFO] Inspecting build with total of 1 modules...
[INFO] Installing Nexus Staging features:
[INFO] ... total of 1 executions of maven-deploy-plugin replaced with nexus-staging-maven-plugin
[INFO]
[INFO] ------------------------< com.pusdn:pgz-common >------------------------
[INFO] Building pgz-common 0.0.1-SNAPSHOT
[INFO] --------------------------------[ jar ]---------------------------------
[INFO]
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ pgz-common ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] skip non existing resourceDirectory /Users/janeyork/PRO/pusdn-center/pgz/RuoYi-Vue-master-3/pgz-common/src/main/resources
[INFO]
[INFO] --- maven-compiler-plugin:3.1:compile (default-compile) @ pgz-common ---
[INFO] Nothing to compile - all classes are up to date
[INFO]
[INFO] --- maven-resources-plugin:2.6:testResources (default-testResources) @ pgz-common ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] skip non existing resourceDirectory /Users/janeyork/PRO/pusdn-center/pgz/RuoYi-Vue-master-3/pgz-common/src/test/resources
[INFO]
[INFO] --- maven-compiler-plugin:3.1:testCompile (default-testCompile) @ pgz-common ---
[INFO] No sources to compile
[INFO]
[INFO] --- maven-surefire-plugin:2.12.4:test (default-test) @ pgz-common ---
[INFO] No tests to run.
[INFO]
[INFO] --- maven-jar-plugin:2.4:jar (default-jar) @ pgz-common ---
[INFO] Building jar: /Users/janeyork/PRO/pusdn-center/pgz/RuoYi-Vue-master-3/pgz-common/target/pgz-common-0.0.1-SNAPSHOT.jar
[INFO]
[INFO] --- maven-gpg-plugin:1.5:sign (sign-artifacts) @ pgz-common ---
[INFO]
[INFO] --- maven-install-plugin:2.4:install (default-install) @ pgz-common ---
[INFO] Installing /Users/janeyork/PRO/pusdn-center/pgz/RuoYi-Vue-master-3/pgz-common/target/pgz-common-0.0.1-SNAPSHOT.jar to /Users/janeyork/DEV/MavenRepository/com/pusdn/pgz-common/0.0.1-SNAPSHOT/pgz-common-0.0.1-SNAPSHOT.jar
[INFO] Installing /Users/janeyork/PRO/pusdn-center/pgz/RuoYi-Vue-master-3/pgz-common/pom.xml to /Users/janeyork/DEV/MavenRepository/com/pusdn/pgz-common/0.0.1-SNAPSHOT/pgz-common-0.0.1-SNAPSHOT.pom
[INFO] Installing /Users/janeyork/PRO/pusdn-center/pgz/RuoYi-Vue-master-3/pgz-common/target/pgz-common-0.0.1-SNAPSHOT.jar.asc to /Users/janeyork/DEV/MavenRepository/com/pusdn/pgz-common/0.0.1-SNAPSHOT/pgz-common-0.0.1-SNAPSHOT.jar.asc
[INFO] Installing /Users/janeyork/PRO/pusdn-center/pgz/RuoYi-Vue-master-3/pgz-common/target/pgz-common-0.0.1-SNAPSHOT.pom.asc to /Users/janeyork/DEV/MavenRepository/com/pusdn/pgz-common/0.0.1-SNAPSHOT/pgz-common-0.0.1-SNAPSHOT.pom.asc
[INFO]
[INFO] --- nexus-staging-maven-plugin:1.6.7:deploy (injected-nexus-deploy) @ pgz-common ---
[INFO] Performing deferred deploys (gathering into "/Users/janeyork/PRO/pusdn-center/pgz/RuoYi-Vue-master-3/pgz-common/target/nexus-staging/deferred")...
[INFO] Installing /Users/janeyork/PRO/pusdn-center/pgz/RuoYi-Vue-master-3/pgz-common/target/pgz-common-0.0.1-SNAPSHOT.jar to /Users/janeyork/PRO/pusdn-center/pgz/RuoYi-Vue-master-3/pgz-common/target/nexus-staging/deferred/com/pusdn/pgz-common/0.0.1-SNAPSHOT/pgz-common-0.0.1-SNAPSHOT.jar
[INFO] Installing /Users/janeyork/PRO/pusdn-center/pgz/RuoYi-Vue-master-3/pgz-common/pom.xml to /Users/janeyork/PRO/pusdn-center/pgz/RuoYi-Vue-master-3/pgz-common/target/nexus-staging/deferred/com/pusdn/pgz-common/0.0.1-SNAPSHOT/pgz-common-0.0.1-SNAPSHOT.pom
[INFO] Installing /Users/janeyork/PRO/pusdn-center/pgz/RuoYi-Vue-master-3/pgz-common/target/pgz-common-0.0.1-SNAPSHOT.jar.asc to /Users/janeyork/PRO/pusdn-center/pgz/RuoYi-Vue-master-3/pgz-common/target/nexus-staging/deferred/com/pusdn/pgz-common/0.0.1-SNAPSHOT/pgz-common-0.0.1-SNAPSHOT.jar.asc
[INFO] Installing /Users/janeyork/PRO/pusdn-center/pgz/RuoYi-Vue-master-3/pgz-common/target/pgz-common-0.0.1-SNAPSHOT.pom.asc to /Users/janeyork/PRO/pusdn-center/pgz/RuoYi-Vue-master-3/pgz-common/target/nexus-staging/deferred/com/pusdn/pgz-common/0.0.1-SNAPSHOT/pgz-common-0.0.1-SNAPSHOT.pom.asc
[INFO] Deploying remotely...
[INFO] Bulk deploying locally gathered artifacts from directory:
[INFO] * Bulk deploying locally gathered snapshot artifacts
Downloading from ossrh: https://s01.oss.sonatype.org/content/repositories/snapshots/com/pusdn/pgz-common/0.0.1-SNAPSHOT/maven-metadata.xml
Uploading to ossrh: https://s01.oss.sonatype.org/content/repositories/snapshots/com/pusdn/pgz-common/0.0.1-SNAPSHOT/pgz-common-0.0.1-20210821.155926-1.pom.asc
Uploaded to ossrh: https://s01.oss.sonatype.org/content/repositories/snapshots/com/pusdn/pgz-common/0.0.1-SNAPSHOT/pgz-common-0.0.1-20210821.155926-1.pom.asc (833 B at 340 B/s)
Downloading from ossrh: https://s01.oss.sonatype.org/content/repositories/snapshots/com/pusdn/pgz-common/maven-metadata.xml
Uploading to ossrh: https://s01.oss.sonatype.org/content/repositories/snapshots/com/pusdn/pgz-common/0.0.1-SNAPSHOT/maven-metadata.xml
Uploaded to ossrh: https://s01.oss.sonatype.org/content/repositories/snapshots/com/pusdn/pgz-common/0.0.1-SNAPSHOT/maven-metadata.xml (600 B at 182 B/s)
Uploading to ossrh: https://s01.oss.sonatype.org/content/repositories/snapshots/com/pusdn/pgz-common/maven-metadata.xml
Uploaded to ossrh: https://s01.oss.sonatype.org/content/repositories/snapshots/com/pusdn/pgz-common/maven-metadata.xml (279 B at 132 B/s)
Uploading to ossrh: https://s01.oss.sonatype.org/content/repositories/snapshots/com/pusdn/pgz-common/0.0.1-SNAPSHOT/pgz-common-0.0.1-20210821.155926-1.jar
Uploaded to ossrh: https://s01.oss.sonatype.org/content/repositories/snapshots/com/pusdn/pgz-common/0.0.1-SNAPSHOT/pgz-common-0.0.1-20210821.155926-1.jar (163 kB at 46 kB/s)
Uploading to ossrh: https://s01.oss.sonatype.org/content/repositories/snapshots/com/pusdn/pgz-common/0.0.1-SNAPSHOT/pgz-common-0.0.1-20210821.155926-1.pom
Uploaded to ossrh: https://s01.oss.sonatype.org/content/repositories/snapshots/com/pusdn/pgz-common/0.0.1-SNAPSHOT/pgz-common-0.0.1-20210821.155926-1.pom (10 kB at 4.8 kB/s)
Uploading to ossrh: https://s01.oss.sonatype.org/content/repositories/snapshots/com/pusdn/pgz-common/0.0.1-SNAPSHOT/maven-metadata.xml
Uploaded to ossrh: https://s01.oss.sonatype.org/content/repositories/snapshots/com/pusdn/pgz-common/0.0.1-SNAPSHOT/maven-metadata.xml (946 B at 455 B/s)
Uploading to ossrh: https://s01.oss.sonatype.org/content/repositories/snapshots/com/pusdn/pgz-common/0.0.1-SNAPSHOT/pgz-common-0.0.1-20210821.155926-1.jar.asc
Uploaded to ossrh: https://s01.oss.sonatype.org/content/repositories/snapshots/com/pusdn/pgz-common/0.0.1-SNAPSHOT/pgz-common-0.0.1-20210821.155926-1.jar.asc (833 B at 1.2 kB/s)
Uploading to ossrh: https://s01.oss.sonatype.org/content/repositories/snapshots/com/pusdn/pgz-common/0.0.1-SNAPSHOT/maven-metadata.xml
Uploaded to ossrh: https://s01.oss.sonatype.org/content/repositories/snapshots/com/pusdn/pgz-common/0.0.1-SNAPSHOT/maven-metadata.xml (1.1 kB at 548 B/s)
[INFO] * Bulk deploy of locally gathered snapshot artifacts finished.
[INFO] Remote deploy finished with success.
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 26.433 s
[INFO] Finished at: 2021-08-21T23:59:44+08:00
[INFO] ------------------------------------------------------------------------
发布
总览
一旦release那么你就无法再次修改或者删除,如果jar真的有问题,那么只有通过发布新版本来告诉大家使用。这也就是为什么不用担心突然有一天开源的jar被删除。
https://central.sonatype.org/publish/release/
https://central.sonatype.org/faq/can-i-change-a-component/
发布后,一般会4小时左右才可以搜到https://search.maven.org/,也许是1-2天
autoReleaseAfterClose:如果为true,则会在deploy后直接release到central maven(version不要以SNAP SHOT结尾)。
如果为false,则要手动发布或者执行mvn nexus-staging:release,如果发现有问题mvn nexus-staging:drop
autoReleaseAfterClose=false,goals=deploy nexus-staging:release也会自动部署发布。
执行快照部署
当version后缀为SNAPSHOT
执行快照部署,没那么麻烦,只需要
mvn clean deploy
快照版本不会同步到中央存储库。如果希望用户使用快照版本,则需要将快照存储库添加到Nexus存储库管理器settings.xml或pom.xml中。成功部署的快照版本将在中找到https://s01.oss.sonatype.org/content/repositories/snapshots/

执行发布部署Release
tips:
个人推荐deploy后,手动去网页进行close - release如果有错误,可以网页进行drop。当然,这些都可以通过mvn命令通过终端执行。
为了执行发布部署,veresion不能包含-SNAPSHOT,插件和依赖关系声明也不能使用snapshotversions。这样可以确保您只依赖于其他发布的组件,理想情况下它们都可以在中央存储库中使用。这确保用户可以从中央存储库检索组件以及可传递的依赖项。
那么,某块中的或者项目中的版本号怎么修改呢?你可以手动更改,或者使用插件mvn versions:set -DnewVersion=1.2.3
多个某块,指定某块-projects
/Users/janeyork/DEV/apache-maven-3.6.2/bin/mvn clean deploy -projects pgz-common
/Users/janeyork/DEV/apache-maven-3.6.2/bin/mvn nexus-staging:release -projects pgz-common
- version中不包含snapshot,而且不引用发布插件。那么就会存在控制台https://s01.oss.sonatype.org/#stagingRepositories 而且需要手动open - close - release
- version中没有snapshot,引用自动release,会发布到central maven
- snap shot如何引用?而且snap shot直接发布,不会在staging repo里
发布SNAPSHOT
发布该版本,不需要提供source doc等。直接mvn clean deploy即可。发布成功后在https://s01.oss.sonatype.org/content/repositories/snapshots/可以查询到。当然也不会存储到staging repo中。
发布staging repo
估计仅在nexus pro版本使用,一般是企业版本内网部署私服。
https://help.sonatype.com/repomanager2/staging-releases
至此结束!
也不需要去回复关闭issue啥的,因为机器人自动检测,会自动处理的。
拓展
发布私有不开源source code
如果不上传Java doc和source code那么就会报错,如下图:

发布fake包后,点击close校验成功后,可以点击release了。如下图:

点击release发布到central maven

具体生成fake包如下:
进入target目录,因为该目录下有pom和生成好的jar,source.jar和doc.jar随便找个文件即可,比如就是将其他的jar改个名即可。然后执行以下命令
/Users/janeyork/DEV/apache-maven-3.6.2/bin/mvn gpg:sign-and-deploy-file -Durl=https://s01.oss.sonatype.org/service/local/staging/deploy/maven2/ -DrepositoryId=ossrh -DpomFile=pgz-common-0.0.1.pom -Dfile=pgz-common-0.0.1.jar
/Users/janeyork/DEV/apache-maven-3.6.2/bin/mvn gpg:sign-and-deploy-file -Durl=https://s01.oss.sonatype.org/service/local/staging/deploy/maven2/ -DrepositoryId=ossrh -DpomFile=pgz-common-0.0.1.pom -Dfile=pgz-common-0.0.1-sources.jar -Dclassifier=sources
/Users/janeyork/DEV/apache-maven-3.6.2/bin/mvn gpg:sign-and-deploy-file -Durl=https://s01.oss.sonatype.org/service/local/staging/deploy/maven2/ -DrepositoryId=ossrh -DpomFile=pgz-common-0.0.1.pom -Dfile=pgz-common-0.0.1-javadoc.jar -Dclassifier=javadoc
注意:换成自己的maven目录和自己的文件名
当执行成功后,网页staging repo中就会看到有文件了。然后close - release.执行截图如下:

另一种可以上传bundle.jar,然后浏览器网页上传。
https://central.sonatype.org/publish/publish-manual/
项目中使用SNAPSHOT
snapshot不上传source code不会有问题。
在主pom.xml增加如下配置,properties 节点后:
<!-- 设定主仓库,按设定顺序进行查找 -->
<repositories>
<repository>
<id>aliyun</id>
<name>aliyun Repository</name>
<url>http://maven.aliyun.com/nexus/content/groups/public</url>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
<repository>
<id>ossrh</id>
<name>ossrh-snapshots Repository</name>
<url>https://s01.oss.sonatype.org/content/repositories/snapshots</url>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
</repositories>
项目中使用已发布的release包
验证是否发布成功
验证是否发布到远程central maven,一般要想到maven仓库中https://search.maven.org/搜索到需要30分-4小时间,也有的几天。但是在nexus中可以立即搜到。


附件
模块的pom.xml
pom.xml文件:(fake jar or snapshot)直接将version加上SNAPSHOT就可以。
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.pusdn</groupId>
<artifactId>pgz-common</artifactId>
<version>0.0.1</version>
<name>pgz-sbv-common</name>
<description>pgz-sbv common通用工具</description>
<url>https://pgz-sbv.pusdn.com/</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
<maven.compiler.source>${java.version}</maven.compiler.source>
<maven.compiler.target>${java.version}</maven.compiler.target>
</properties>
<dependencies>
<!-- Spring框架基本的核心工具 -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context-support</artifactId>
<version>5.2.12.RELEASE</version>
</dependency>
<!-- SpringWeb模块 -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>5.2.12.RELEASE</version>
</dependency>
<!-- spring security 安全认证 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
<version>2.2.13.RELEASE</version>
</dependency>
<!-- pagehelper 分页插件 -->
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-starter</artifactId>
<version>1.3.1</version>
</dependency>
<!-- 自定义验证注解 -->
<dependency>
<groupId>javax.validation</groupId>
<artifactId>validation-api</artifactId>
<version>2.0.1.Final</version>
</dependency>
<!--常用工具类 -->
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.12.0</version>
</dependency>
<!-- JSON工具类 -->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.10.5.1</version>
</dependency>
<!-- 阿里JSON解析器 -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.76</version>
</dependency>
<!-- io常用工具类 -->
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.11.0</version>
</dependency>
<!-- 文件上传工具类 -->
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>1.4</version>
</dependency>
<!-- excel工具 -->
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>4.1.2</version>
</dependency>
<!-- yml解析器 -->
<dependency>
<groupId>org.yaml</groupId>
<artifactId>snakeyaml</artifactId>
<version>1.29</version>
</dependency>
<!--Token生成与解析-->
<dependency>
<groupId>io.jsonwebtoken</groupId>
<artifactId>jjwt</artifactId>
<version>0.9.1</version>
</dependency>
<!-- redis 缓存操作 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
<version>2.2.13.RELEASE</version>
</dependency>
<!-- pool 对象池 -->
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-pool2</artifactId>
<version>2.8.0</version>
</dependency>
<!-- 解析客户端操作系统、浏览器等 -->
<dependency>
<groupId>eu.bitwalker</groupId>
<artifactId>UserAgentUtils</artifactId>
<version>1.21</version>
</dependency>
<!-- servlet包 -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
</dependency>
</dependencies>
<!-- 许可证信息 -->
<licenses>
<!-- Apache许可证 -->
<license>
<name>The Apache Software License, Version 2.0</name>
<url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
</license>
<!-- MIT许可证 -->
<!-- <license>
<name>MIT License</name>
<url>http://www.opensource.org/licenses/mit-license.php</url>
</license>-->
</licenses>
<!-- SCM信息 -> git在github上托管 -->
<scm>
<connection>scm:git:git://github.com/JaneYork/pgz-sbv-common.git</connection>
<developerConnection>scm:git:ssh://github.com:JaneYork/pgz-sbv-common.git</developerConnection>
<url>http://github.com/JaneYork/pgz-sbv-common/tree/master</url>
</scm>
<!-- 开发者信息 -->
<developers>
<developer>
<name>JaneYork</name>
<email>pgz@pusdn.com</email>
<organization>Parallel Universe Laboratory</organization>
<organizationUrl>https://www.pusdn.com</organizationUrl>
</developer>
</developers>
<!-- 使用profile:由于生成javadoc和源jar以及使用GPG签署组件是一个相当耗时的过程,因此这些执行通常与正常的构建配置隔离并移动到配置文件中。然后,在通过激活配置文件执行部署时,将使用此配置文件。 -->
<profiles>
<profile>
<id>ossrh</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<build>
<plugins>
<!-- 要生成Javadoc和Source jar文件,您必须配置javadoc和源Maven插件 -->
<!-- <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>2.9.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>
<!--将组件部署到OSSRH并将其发布到Central Repository-->
<!-- 用于部署和发布的Nexus Staging Maven插件-->
<!-- <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>https://s01.oss.sonatype.org/</nexusUrl>
<autoReleaseAfterClose>false</autoReleaseAfterClose>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-release-plugin</artifactId>
<version>2.5.3</version>
<configuration>
<goals>deploy</goals>
<!– <goals>deploy nexus-staging:release</goals>–>
<autoVersionSubmodules>true</autoVersionSubmodules>
<useReleaseProfile>false</useReleaseProfile>
<releaseProfiles>release</releaseProfiles>
</configuration>
</plugin>-->
</plugins>
</build>
<!-- 【注】snapshotRepository 与 repository 中的 id 一定要与 setting.xml 中 server 的 id 保持一致! -->
<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>
</profile>
</profiles>
</project>
maven的conf
servers节点复制:
<server>
<id>ossrh</id>
<username>jira用户名</username>
<password>jira密码</password>
</server>
疑问
- 如果在module中pom.xml指定依赖version或者使用最优version?
更多推荐



所有评论(0)