gpt4 book ai didi

java - 如何迁移gradle发布脚本将OSS库发布到Bintray的JCenter而不是Sonatype的Maven Central

转载 作者:行者123 更新时间:2023-12-01 09:59:24 26 4
gpt4 key购买 nike

我是 Java 8 java.time JSP tags 的维护者图书馆。我自己出版图书馆的经验很少。为了发布这个库,我做了一些研究并以 gradle 构建脚本 that you can check in GitHub 结束。 。这个过程有点笨拙,但最终还是有效的。

人们似乎普遍认为 jcenter() 存储库正在获得大量关注。可能是安卓的原因。无论如何我看到了an encouraging blog post并决定尝试一下并将该库迁移到 JCenter 发布而不是 Maven Central。应该很容易。

至少对我来说不是。可能是我的错,因为我对 Maven、工件和所有这些东西的了解很差。不管怎样,我花了几个小时的时间进行研究,并提出了一个新的 gradle 版本,并将其发布到我的 Bintray maven 存储库。如果我没记错的话,这是发布到 JCenter 的第一步。

这是我到目前为止所拥有的:

plugins {
id "com.jfrog.bintray" version "1.6"
}

apply plugin: 'java'
apply plugin: 'maven-publish'

group = 'net.sargue'
version = '1.1.2'

sourceCompatibility = 1.8
compileJava.options.encoding = 'UTF-8'
compileTestJava.options.encoding = 'UTF-8'

repositories {
jcenter()
}

configurations {
testCompile.extendsFrom compileOnly
}

dependencies {
compileOnly 'javax.servlet:javax.servlet-api:3.0.1'
compileOnly 'javax.servlet.jsp:javax.servlet.jsp-api:2.2.1'
compileOnly 'javax.servlet.jsp.jstl:javax.servlet.jsp.jstl-api:1.2.1'

testCompile 'junit:junit:4.12'
testCompile 'org.springframework:spring-test:4.1.7.RELEASE'
}

jar {
manifest {
attributes 'Implementation-Title': 'Java 8 java.time JSP tags',
'Implementation-Version': version
}
}

task javadocJar(type: Jar) {
classifier = 'javadoc'
from javadoc
}

task sourcesJar(type: Jar) {
classifier = 'sources'
from sourceSets.main.allSource
}

publishing {
publications {
MyPublication(MavenPublication) {
from components.java
artifact sourcesJar
artifact javadocJar
artifactId 'java-time-jsptags'

pom.withXml {
asNode().children().last() + {
resolveStrategy = Closure.DELEGATE_FIRST

name 'Java 8 java.time JSP tags'
description 'JSP tag support for Java 8 java.time (JSR-310)'
url 'https://github.com/sargue/java-time-jsptags'

scm {
connection 'scm:git:git@github.com:sargue/java-time-jsptags.git'
developerConnection 'scm:git:git@github.com:sargue/java-time-jsptags.git'
url 'git@github.com:sargue/java-time-jsptags.git'
}

licenses {
license {
name 'The Apache License, Version 2.0'
url 'http://www.apache.org/licenses/LICENSE-2.0.txt'
}
}

developers {
developer {
id 'sargue'
name 'Sergi Baila'
email 'sargue@gmail.com'
}
}
}
}
}
}
}

bintray {
user = BINTRAY_USER
key = BINTRAY_KEY
publications = ['MyPublication']
pkg {
repo = 'maven'
name = 'java-time-jsptags'
licenses = ['Apache-2.0']
vcsUrl = 'https://github.com/sargue/java-time-jsptags.git'
version {
name = project.version
desc = 'Java 8 java.time JSP tags'

gpg {
sign = true
passphrase = BINTRAY_GPG
}
}
}
}

您可以在my public Bintray maven repository上找到最新发布的结果。您可以将其与 the same version currently available on Maven Central 的文件进行比较.

如果您到目前为止正在阅读本文,那么恭喜您,因为我还没有提出任何问题。对此感到抱歉。

我的问题:

gradle 构建脚本是否正确且正确/规范?鉴于该库非常简单,我发现构建脚本庞大且笨重。它应该更容易,甚至有一个 gradle 插件。但新脚本比 Maven 中心脚本

*.md5*.sha1 文件怎么样?将由 JCenter、Maven Central、同步过程生成...还是我应该这样做?

鉴于存储库上没有取消发布功能,是否有某种方法可以在不发布库的实际版本的情况下测试所有这些? (并且有充分的理由,嗯?有人左键吗?​​)。

最佳答案

首先,很好地解决了这个问题。看起来不错,而且效果也不错。

它比另一个更大,不是因为你使用 Bintray 而不是 Central,而是因为你使用 maven-publish 插件而不是 maven,而且功能更强大,配置有点详细。您可以将 Bintray(和 bintray 插件)与 mavenmaven-publish 一起使用,无论您喜欢什么。

重新测试它 - 您始终可以针对您的私有(private)存储库运行测试构建(单击“Set Me Up”按钮以获取有关如何设置 Maven 和/或 Gradle 以从中解析的说明)。

另一个验证将同步到 Maven Central。如果您的包元数据有问题,它将失败。

关于 md5 和 sha1,我们没有理由将可计算元数据作为文件存储在现代分发平台上,但我们在同步时将它们发送到 Maven Central。

关于java - 如何迁移gradle发布脚本将OSS库发布到Bintray的JCenter而不是Sonatype的Maven Central,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36937005/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com