私はJava 8 java.time JSP tagsライブラリのmantainerです。私は自分でライブラリを公開した経験はほとんどありません。このライブラリの公開に関しては、私はいくつかの調査を行い、グラデルビルドスクリプトthat you can check in GitHubで終了しました。プロセスはちょっとぎこちないですが、最終的には機能します。OSSライブラリをBatrayのJCenterにSonatypeのMaven Centralの代わりに公開するために、gradleの公開スクリプトを移行する方法
jcenter()
リポジトリが多くの注目を集めているという一般的な理解があるようです。おそらくアンドロイドのため。とにかく私はan encouraging blog postを見て、それを試して、そのライブラリをMaven CentralのJCenter出版機関に移行することに決めました。簡単にする必要があります。
少なくとも私にとってはそうではありません。おそらく、私のMaven、人工物、そしてすべてのものに関する知識が不十分な私のせいだろう。とにかく私は数時間の研究をして、Bintray Mavenリポジトリに公開するために新しいgradleビルドを作りました。私が間違っていない場合、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:[email protected]:sargue/java-time-jsptags.git'
developerConnection 'scm:git:[email protected]:sargue/java-time-jsptags.git'
url '[email protected]: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 '[email protected]'
}
}
}
}
}
}
}
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のビルドスクリプトが正しく、標準的な/適切な方法はありますか?ライブラリが非常にシンプルであることを考えると、ビルドスクリプトは巨大で厄介なものになっていました。それはより簡単であると考えられており、さらにグラデルプラグインを持っています。しかし、新しいスクリプトは、がより長く、中央のものよりも大きい。
ファイル*.md5
と*.sha1
はどうなりますか? JCenter、Maven Central、同期処理によって生成されます...それともどうすればいいですか?
リポジトリに未公開機能がないと仮定して、実際のバージョンのライブラリを公開せずにこれらのすべてをテストする方法はありますか? (そして正当な理由で、左の人は誰ですか?)