[英]Is it possible to publish to Maven Central Repository from SourceForge?
[英]Publish from internal nexus to maven central
我有一个内部联系,其中包含我们构建的所有工件。 测试工件后,我想获取正常的工件并将其部署到 Maven Central而不重建它。
我知道我可以使用mvn deploy:deploy-file
来做到这一点,但它似乎很复杂。 有没有简单的方法来做到这一点?
注意:由于历史原因,我们不使用 SNAPSHOT 版本。 所有版本都采用artifact-name-XYZjar
的样式,其中XYZ
是版本号。 我们有一个可以查询理智的内部工具。
我已经结束使用类似于他们在这里的方法: https://central.sonatype.org/pages/manual-staging-bundle-creation-and-deployment.html
所以,如果我有以下文件:
ossrh-test-1.2.pom
ossrh-test-1.2.jar
ossrh-test-1.2-javadoc.jar
ossrh-test-1.2-sources.jar
我已经为 JAR 调用了这个命令:
mvn gpg:sign-and-deploy-file -Durl=https://oss.sonatype.org/service/local/staging/deploy/maven2/ -DrepositoryId=ossrh -DpomFile=ossrh-test-1.2.pom -Dfile=ossrh-test-1.2.jar
源代码和 JavaDocs 的以下命令:
mvn gpg:sign-and-deploy-file -Durl=https://oss.sonatype.org/service/local/staging/deploy/maven2/ -DrepositoryId=ossrh -DpomFile=ossrh-test-1.2.pom -Dfile=ossrh-test-1.2-sources.jar -Dclassifier=sources
mvn gpg:sign-and-deploy-file -Durl=https://oss.sonatype.org/service/local/staging/deploy/maven2/ -DrepositoryId=ossrh -DpomFile=ossrh-test-1.2.pom -Dfile=ossrh-test-1.2-javadoc.jar -Dclassifier=javadoc
最后但并非最不重要的一点是,由于我必须创建假源和 javadoc jars,所以我刚刚获取了 jar,将其解压缩,将自述文件放入其中而不是旧内容,更新清单并再次压缩它。 然后我将它作为我的假来源/javadoc jars 上传。
让我假设你不仅有 xyz 版本的二进制文件,还有这个版本的 scm 标签。
如果是这样,您可以尝试以下 CI 工作:
<scm> checkout <YOUR TAG>
<scm> clean -d -x -f
mvn maven-dependency-plugin:get -Pcustom-deployment -DexecutionId=resolve-sane-binaries
mvn maven-deploy-plugin:deploy -Pcustom-deployment -DexecutionId=deploy-sane-binaries
在您的 pom.xml 中使用配置文件:
<profiles>
<profile>
<id>custom-deployment</id>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>3.1.2</version>
<executions>
<execution>
<id>resolve-sane-binaries</id>
<goals>
<goal>get</goal>
</goals>
<configuration>
<artifactItems>
<artifactItem>
<groupId>${project.groupId}</groupId>
<artifactId>${project.artifactId}</artifactId>
<version>${project.version}</version>
<type>${project.packaging}</type>
<outputDirectory>${project.build.directory}</outputDirectory>
<destFileName>${project.build.finalName}</destFileName>
</artifactItem>
...
</artifactItems>
...
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-deploy-plugin</artifactId>
<version>2.8.2</version>
<executions>
<execution>
<id>deploy-sane-binaries</id>
<goals>
<goal>deploy-file</goal>
</goals>
<configuration>
...
</configuration>
</execution>
<executions>
<plugin>
</plugins>
这只是一个想法,而不是我真正测试过的代码。 但希望它会有所帮助。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.