在学习springboot框架的时候,会引入各种各样的starter依赖,照着教程尝试写了个demo-spring-boot-stater,可以理解为一个组件,随引随用
但是只能自己引用,无法共享,于是想将其发布到maven中央仓库
gpg加密发布jar包到maven中央仓库详细过程以及踩的坑
上面一些文章操作的都很详细,在此记录下自己遇到的些问题以及解决方式
脑壳疼
<?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>cn.chendahai</groupId>
<artifactId>demo-spring-boot-starter</artifactId>
<version>1.1.2</version>
<packaging>jar</packaging>
<name>demo-spring-boot-starter</name>
<description>spring-boot-starter-demo</description>
<url>https://github.com/chywx/demo-spring-boot-starter</url>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-autoconfigure</artifactId>
</dependency>
</dependencies>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>2.1.0.RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<!--licenses信息-->
<licenses>
<license>
<name>The Apache Software License, Version 2.0</name>
<url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
<distribution>repo</distribution>
</license>
</licenses>
<!--scm信息-->
<scm>
<url>http://chendahai.cn</url>
<connection>scm:git:https://github.com/chywx/demo-spring-boot-starter.git</connection>
<developerConnection>scm:git:https://github.com/chywx/demo-spring-boot-starter.git</developerConnection>
</scm>
<!--发布者信息-->
<developers>
<developer>
<name>chenhaiyang</name>
<email>chy1559843332@outlook.com</email>
<organization>http://chendahai.cn</organization>
<organizationUrl>http://chendahai.cn</organizationUrl>
</developer>
</developers>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
<!--Compiler-->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
</plugin>
<!--source-->
<plugin>
<artifactId>maven-source-plugin</artifactId>
<version>3.0.1</version>
<executions>
<execution>
<id>attach-sources</id>
<goals>
<goal>jar</goal>
</goals>
</execution>
</executions>
</plugin>
<!--javadoc-->
<plugin>
<artifactId>maven-javadoc-plugin</artifactId>
<version>2.10.4</version>
<configuration>
<charset>UTF-8</charset>
</configuration>
<executions>
<execution>
<id>attach-javadocs</id>
<goals>
<goal>jar</goal>
</goals>
</execution>
</executions>
</plugin>
<!-- gpg plugin,用于签名认证 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-gpg-plugin</artifactId>
<version>1.6</version>
<executions>
<execution>
<id>sign-artifacts</id>
<phase>verify</phase>
<goals>
<goal>sign</goal>
</goals>
</execution>
</executions>
</plugin>
<!--staging puglin,用于自动执行发布阶段(免手动)-->
<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://oss.sonatype.org/</nexusUrl>
<autoReleaseAfterClose>true</autoReleaseAfterClose>
</configuration>
</plugin>
<!-- release plugin,用于发布到release仓库部署插件 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-release-plugin</artifactId>
<version>2.4.2</version>
</plugin>
</plugins>
</build>
<!--定义snapshots库和releases库的nexus地址-->
<distributionManagement>
<snapshotRepository>
<!--oss需要对应到settings.xml下的service的id-->
<id>ossrh</id>
<url>https://oss.sonatype.org/content/repositories/snapshots/</url>
</snapshotRepository>
<repository>
<id>ossrh</id>
<url>https://oss.sonatype.org/service/local/staging/deploy/maven2/</url>
</repository>
</distributionManagement>
</project>
<!--需要添加-->
<server>
<id>ossrh</id>
<username>sonatype账号</username>
<password>sonatype密码</password>
</server>
<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://oss.sonatype.org/</nexusUrl>
<autoReleaseAfterClose>true</autoReleaseAfterClose>
</configuration>
</plugin>
staging puglin,用于自动执行发布阶段(免手动)
因为deploy之后,默认状态为open,你需要在后台https://oss.sonatype.org 手动closed,再release
当然,加上这个插件,将autoReleaseAfterClose指定为true,即可自动发布
Release完成后,约需要等待两三个小时,在 https://search.maven.org 和 https://mvnrepository.com 便可以搜到自己发布的依赖了!!!!
同步到第三方仓库,如阿里云等会更慢
PS C:\Users\Administrator> cd D:/MyProject/demo-spring-boot-starter
PS D:\MyProject\demo-spring-boot-starter> mvn clean deploy '-Dmaven.test.skip=true'
[WARNING]
[WARNING] Some problems were encountered while building the effective settings
[WARNING] expected START_TAG or END_TAG not TEXT (position: TEXT seen ...mojo" if these are not already contained in the list.\n |-->\n <p... @79:5) @ D:\maven\apache-maven-3.6.1\bin\..\conf\settings.xml, line 79, column 5
[WARNING]
[INFO] Scanning for projects...
[WARNING]
[WARNING] Some problems were encountered while building the effective model for cn.chendahai:demo-spring-boot-starter:jar:1.1.2
[WARNING] 'build.plugins.plugin.version' for org.apache.maven.plugins:maven-compiler-plugin is missing. @ line 66, column 21
[WARNING] 'build.plugins.plugin.version' for org.springframework.boot:spring-boot-maven-plugin is missing. @ line 61, column 21
[WARNING]
[WARNING] It is highly recommended to fix these problems because they threaten the stability of your build.
[WARNING]
[WARNING] For this reason, future Maven versions might no longer support building such malformed projects.
[WARNING]
[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] ---------------< cn.chendahai:demo-spring-boot-starter >----------------
[INFO] Building demo-spring-boot-starter 1.1.2
[INFO] --------------------------------[ jar ]---------------------------------
[INFO]
[INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ demo-spring-boot-starter ---
[INFO] Deleting D:\MyProject\demo-spring-boot-starter\target
[INFO]
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ demo-spring-boot-starter ---
[WARNING] Using platform encoding (GBK actually) to copy filtered resources, i.e. build is platform dependent!
[INFO] Copying 1 resource
[INFO]
[INFO] --- maven-compiler-plugin:3.1:compile (default-compile) @ demo-spring-boot-starter ---
[INFO] Changes detected - recompiling the module!
[WARNING] File encoding has not been set, using platform encoding GBK, i.e. build is platform dependent!
[INFO] Compiling 3 source files to D:\MyProject\demo-spring-boot-starter\target\classes
[INFO]
[INFO] --- maven-resources-plugin:2.6:testResources (default-testResources) @ demo-spring-boot-starter ---
[INFO] Not copying test resources
[INFO]
[INFO] --- maven-compiler-plugin:3.1:testCompile (default-testCompile) @ demo-spring-boot-starter ---
[INFO] Not compiling test sources
[INFO]
[INFO] --- maven-surefire-plugin:2.12.4:test (default-test) @ demo-spring-boot-starter ---
[INFO] Tests are skipped.
[INFO]
[INFO] --- maven-jar-plugin:2.4:jar (default-jar) @ demo-spring-boot-starter ---
[INFO] Building jar: D:\MyProject\demo-spring-boot-starter\target\demo-spring-boot-starter-1.1.2.jar
[INFO]
[INFO] >>> maven-source-plugin:3.0.1:jar (attach-sources) > generate-sources @ demo-spring-boot-starter >>>
[INFO]
[INFO] <<< maven-source-plugin:3.0.1:jar (attach-sources) < generate-sources @ demo-spring-boot-starter <<<
[INFO]
[INFO]
[INFO] --- maven-source-plugin:3.0.1:jar (attach-sources) @ demo-spring-boot-starter ---
[INFO] Building jar: D:\MyProject\demo-spring-boot-starter\target\demo-spring-boot-starter-1.1.2-sources.jar
[INFO]
[INFO] --- maven-javadoc-plugin:2.10.4:jar (attach-javadocs) @ demo-spring-boot-starter ---
[WARNING] Source files encoding has not been set, using platform encoding GBK, i.e. build is platform dependent!
[INFO]
正在加载程序包cn.chendahai.demo的源文件...
正在构造 Javadoc 信息...
标准 Doclet 版本 1.8.0_211
正在构建所有程序包和类的树...
正在生成D:\MyProject\demo-spring-boot-starter\target\apidocs\cn\chendahai\demo\DemoService.html...
正在生成D:\MyProject\demo-spring-boot-starter\target\apidocs\cn\chendahai\demo\DemoServiceProperties.html...
正在生成D:\MyProject\demo-spring-boot-starter\target\apidocs\cn\chendahai\demo\DemoStarterEnableAutoConfiguration.html...
正在生成D:\MyProject\demo-spring-boot-starter\target\apidocs\cn\chendahai\demo\package-frame.html...
正在生成D:\MyProject\demo-spring-boot-starter\target\apidocs\cn\chendahai\demo\package-summary.html...
正在生成D:\MyProject\demo-spring-boot-starter\target\apidocs\cn\chendahai\demo\package-tree.html...
正在生成D:\MyProject\demo-spring-boot-starter\target\apidocs\constant-values.html...
正在生成D:\MyProject\demo-spring-boot-starter\target\apidocs\cn\chendahai\demo\class-use\DemoStarterEnableAutoConfiguration.html...
正在生成D:\MyProject\demo-spring-boot-starter\target\apidocs\cn\chendahai\demo\class-use\DemoServiceProperties.html...
正在生成D:\MyProject\demo-spring-boot-starter\target\apidocs\cn\chendahai\demo\class-use\DemoService.html...
正在生成D:\MyProject\demo-spring-boot-starter\target\apidocs\cn\chendahai\demo\package-use.html...
正在构建所有程序包和类的索引...
正在生成D:\MyProject\demo-spring-boot-starter\target\apidocs\overview-tree.html...
正在生成D:\MyProject\demo-spring-boot-starter\target\apidocs\index-all.html...
正在生成D:\MyProject\demo-spring-boot-starter\target\apidocs\deprecated-list.html...
正在构建所有类的索引...
正在生成D:\MyProject\demo-spring-boot-starter\target\apidocs\allclasses-frame.html...
正在生成D:\MyProject\demo-spring-boot-starter\target\apidocs\allclasses-noframe.html...
正在生成D:\MyProject\demo-spring-boot-starter\target\apidocs\index.html...
正在生成D:\MyProject\demo-spring-boot-starter\target\apidocs\help-doc.html...
[INFO] Building jar: D:\MyProject\demo-spring-boot-starter\target\demo-spring-boot-starter-1.1.2-javadoc.jar
[INFO]
[INFO] --- maven-gpg-plugin:1.6:sign (sign-artifacts) @ demo-spring-boot-starter ---
[INFO]
[INFO] --- maven-install-plugin:2.4:install (default-install) @ demo-spring-boot-starter ---
[INFO] Installing D:\MyProject\demo-spring-boot-starter\target\demo-spring-boot-starter-1.1.2.jar to D:\maven\mymaven\repository\cn\chendahai\demo-spring-boot-starter\1.1.2\demo-spring-boot-starter-1.1.2.jar
[INFO] Installing D:\MyProject\demo-spring-boot-starter\pom.xml to D:\maven\mymaven\repository\cn\chendahai\demo-spring-boot-starter\1.1.2\demo-spring-boot-starter-1.1.2.pom
[INFO] Installing D:\MyProject\demo-spring-boot-starter\target\demo-spring-boot-starter-1.1.2-sources.jar to D:\maven\mymaven\repository\cn\chendahai\demo-spring-boot-starter\1.1.2\demo-spring-boot-starter-1.1.2-sources.jar
[INFO] Installing D:\MyProject\demo-spring-boot-starter\target\demo-spring-boot-starter-1.1.2-javadoc.jar to D:\maven\mymaven\repository\cn\chendahai\demo-spring-boot-starter\1.1.2\demo-spring-boot-starter-1.1.2-javadoc.jar
[INFO] Installing D:\MyProject\demo-spring-boot-starter\target\demo-spring-boot-starter-1.1.2.jar.asc to D:\maven\mymaven\repository\cn\chendahai\demo-spring-boot-starter\1.1.2\demo-spring-boot-starter-1.1.2.jar.asc
[INFO] Installing D:\MyProject\demo-spring-boot-starter\target\demo-spring-boot-starter-1.1.2.pom.asc to D:\maven\mymaven\repository\cn\chendahai\demo-spring-boot-starter\1.1.2\demo-spring-boot-starter-1.1.2.pom.asc
[INFO] Installing D:\MyProject\demo-spring-boot-starter\target\demo-spring-boot-starter-1.1.2-sources.jar.asc to D:\maven\mymaven\repository\cn\chendahai\demo-spring-boot-starter\1.1.2\demo-spring-boot-starter-1.1.2-sources.jar.asc
[INFO] Installing D:\MyProject\demo-spring-boot-starter\target\demo-spring-boot-starter-1.1.2-javadoc.jar.asc to D:\maven\mymaven\repository\cn\chendahai\demo-spring-boot-starter\1.1.2\demo-spring-boot-starter-1.1.2-javadoc.jar.asc
[INFO]
[INFO] --- nexus-staging-maven-plugin:1.6.7:deploy (injected-nexus-deploy) @ demo-spring-boot-starter ---
[INFO] Performing local staging (local stagingDirectory="D:\MyProject\demo-spring-boot-starter\target\nexus-staging\staging")...
[INFO] + Using server credentials "ossrh" from Maven settings.
[INFO] * Connected to Nexus at https://oss.sonatype.org:443/, is version 2.14.14-01 and edition "Professional"
[INFO] * Using staging profile ID "ba067c55e451" (matched by Nexus).
[INFO] Installing D:\MyProject\demo-spring-boot-starter\target\demo-spring-boot-starter-1.1.2.jar to D:\MyProject\demo-spring-boot-starter\target\nexus-staging\staging\ba067c55e451\cn\chendahai\demo-spring-boot-starter\1.1.2\demo-spring-boot-starter-1.1.2.jar
[INFO] Installing D:\MyProject\demo-spring-boot-starter\pom.xml to D:\MyProject\demo-spring-boot-starter\target\nexus-staging\staging\ba067c55e451\cn\chendahai\demo-spring-boot-starter\1.1.2\demo-spring-boot-starter-1.1.2.pom
[INFO] Installing D:\MyProject\demo-spring-boot-starter\target\demo-spring-boot-starter-1.1.2-sources.jar to D:\MyProject\demo-spring-boot-starter\target\nexus-staging\staging\ba067c55e451\cn\chendahai\demo-spring-boot-starter\1.1.2\demo-spring-boot-starter-1.1.2-sources.jar
[INFO] Installing D:\MyProject\demo-spring-boot-starter\target\demo-spring-boot-starter-1.1.2-javadoc.jar to D:\MyProject\demo-spring-boot-starter\target\nexus-staging\staging\ba067c55e451\cn\chendahai\demo-spring-boot-starter\1.1.2\demo-spring-boot-starter-1.1.2-javadoc.jar
[INFO] Installing D:\MyProject\demo-spring-boot-starter\target\demo-spring-boot-starter-1.1.2.jar.asc to D:\MyProject\demo-spring-boot-starter\target\nexus-staging\staging\ba067c55e451\cn\chendahai\demo-spring-boot-starter\1.1.2\demo-spring-boot-starter-1.1.2.jar.asc
[INFO] Installing D:\MyProject\demo-spring-boot-starter\target\demo-spring-boot-starter-1.1.2.pom.asc to D:\MyProject\demo-spring-boot-starter\target\nexus-staging\staging\ba067c55e451\cn\chendahai\demo-spring-boot-starter\1.1.2\demo-spring-boot-starter-1.1.2.pom.asc
[INFO] Installing D:\MyProject\demo-spring-boot-starter\target\demo-spring-boot-starter-1.1.2-sources.jar.asc to D:\MyProject\demo-spring-boot-starter\target\nexus-staging\staging\ba067c55e451\cn\chendahai\demo-spring-boot-starter\1.1.2\demo-spring-boot-starter-1.1.2-sources.jar.asc
[INFO] Installing D:\MyProject\demo-spring-boot-starter\target\demo-spring-boot-starter-1.1.2-javadoc.jar.asc to D:\MyProject\demo-spring-boot-starter\target\nexus-staging\staging\ba067c55e451\cn\chendahai\demo-spring-boot-starter\1.1.2\demo-spring-boot-starter-1.1.2-javadoc.jar.asc
[INFO] Performing remote staging...
[INFO]
[INFO] * Remote staging into staging profile ID "ba067c55e451"
[INFO] * Created staging repository with ID "cnchendahai-1038".
[INFO] * Staging repository at https://oss.sonatype.org:443/service/local/staging/deployByRepositoryId/cnchendahai-1038
[INFO] * Uploading locally staged artifacts to profile cn.chendahai
Uploading to ossrh: https://oss.sonatype.org:443/service/local/staging/deployByRepositoryId/cnchendahai-1038/cn/chendahai/demo-spring-boot-starter/1.1.2/demo-spring-boot-starter-1.1.2.pom.asc
Uploaded to ossrh: https://oss.sonatype.org:443/service/local/staging/deployByRepositoryId/cnchendahai-1038/cn/chendahai/demo-spring-boot-starter/1.1.2/demo-spring-boot-starter-1.1.2.pom.asc (499 B at 175 B/s)
Downloading from ossrh: https://oss.sonatype.org:443/service/local/staging/deployByRepositoryId/cnchendahai-1038/cn/chendahai/demo-spring-boot-starter/maven-metadata.xml
Uploading to ossrh: https://oss.sonatype.org:443/service/local/staging/deployByRepositoryId/cnchendahai-1038/cn/chendahai/demo-spring-boot-starter/maven-metadata.xml
Uploaded to ossrh: https://oss.sonatype.org:443/service/local/staging/deployByRepositoryId/cnchendahai-1038/cn/chendahai/demo-spring-boot-starter/maven-metadata.xml (316 B at 86 B/s)
Uploading to ossrh: https://oss.sonatype.org:443/service/local/staging/deployByRepositoryId/cnchendahai-1038/cn/chendahai/demo-spring-boot-starter/1.1.2/demo-spring-boot-starter-1.1.2-sources.jar
Uploaded to ossrh: https://oss.sonatype.org:443/service/local/staging/deployByRepositoryId/cnchendahai-1038/cn/chendahai/demo-spring-boot-starter/1.1.2/demo-spring-boot-starter-1.1.2-sources.jar (4.5 kB at 799 B/s)
Uploading to ossrh: https://oss.sonatype.org:443/service/local/staging/deployByRepositoryId/cnchendahai-1038/cn/chendahai/demo-spring-boot-starter/1.1.2/demo-spring-boot-starter-1.1.2-javadoc.jar.asc
Uploaded to ossrh: https://oss.sonatype.org:443/service/local/staging/deployByRepositoryId/cnchendahai-1038/cn/chendahai/demo-spring-boot-starter/1.1.2/demo-spring-boot-starter-1.1.2-javadoc.jar.asc (499 B at 1.0 kB/s)
Uploading to ossrh: https://oss.sonatype.org:443/service/local/staging/deployByRepositoryId/cnchendahai-1038/cn/chendahai/demo-spring-boot-starter/1.1.2/demo-spring-boot-starter-1.1.2.jar
Uploaded to ossrh: https://oss.sonatype.org:443/service/local/staging/deployByRepositoryId/cnchendahai-1038/cn/chendahai/demo-spring-boot-starter/1.1.2/demo-spring-boot-starter-1.1.2.jar (5.2 kB at 830 B/s)
Uploading to ossrh: https://oss.sonatype.org:443/service/local/staging/deployByRepositoryId/cnchendahai-1038/cn/chendahai/demo-spring-boot-starter/1.1.2/demo-spring-boot-starter-1.1.2.pom
Uploaded to ossrh: https://oss.sonatype.org:443/service/local/staging/deployByRepositoryId/cnchendahai-1038/cn/chendahai/demo-spring-boot-starter/1.1.2/demo-spring-boot-starter-1.1.2.pom (5.7 kB at 3.0 kB/s)
Uploading to ossrh: https://oss.sonatype.org:443/service/local/staging/deployByRepositoryId/cnchendahai-1038/cn/chendahai/demo-spring-boot-starter/1.1.2/demo-spring-boot-starter-1.1.2.jar.asc
Uploaded to ossrh: https://oss.sonatype.org:443/service/local/staging/deployByRepositoryId/cnchendahai-1038/cn/chendahai/demo-spring-boot-starter/1.1.2/demo-spring-boot-starter-1.1.2.jar.asc (499 B at 1.0 kB/s)
Uploading to ossrh: https://oss.sonatype.org:443/service/local/staging/deployByRepositoryId/cnchendahai-1038/cn/chendahai/demo-spring-boot-starter/1.1.2/demo-spring-boot-starter-1.1.2-javadoc.jar
Uploaded to ossrh: https://oss.sonatype.org:443/service/local/staging/deployByRepositoryId/cnchendahai-1038/cn/chendahai/demo-spring-boot-starter/1.1.2/demo-spring-boot-starter-1.1.2-javadoc.jar (35 kB at 6.0 kB/s)
Uploading to ossrh: https://oss.sonatype.org:443/service/local/staging/deployByRepositoryId/cnchendahai-1038/cn/chendahai/demo-spring-boot-starter/1.1.2/demo-spring-boot-starter-1.1.2-sources.jar.asc
Uploaded to ossrh: https://oss.sonatype.org:443/service/local/staging/deployByRepositoryId/cnchendahai-1038/cn/chendahai/demo-spring-boot-starter/1.1.2/demo-spring-boot-starter-1.1.2-sources.jar.asc (499 B at 1.0 kB/s)
[INFO] * Upload of locally staged artifacts finished.
[INFO] * Closing staging repository with ID "cnchendahai-1038".
Waiting for operation to complete...
......
[INFO] Remote staged 1 repositories, finished with success.
[INFO] Remote staging repositories are being released...
Waiting for operation to complete...
.....
[INFO] Remote staging repositories released.
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 01:55 min
[INFO] Finished at: 2019-10-12T10:38:48+08:00
[INFO] ------------------------------------------------------------------------
PS D:\MyProject\demo-spring-boot-starter>
PS D:\MyProject\demo-spring-boot-starter>