我有一個使用CI和gradle構建的項目,我想添加一個gradle任務來發佈一個jar,我們可以在每次CI構建運行時訪問它。如何通過gradle任務將jar發佈到互聯網上的某個地方?
我甚至不知道(或關心)我將要上傳的服務;任何工作。
我有一個使用CI和gradle構建的項目,我想添加一個gradle任務來發佈一個jar,我們可以在每次CI構建運行時訪問它。如何通過gradle任務將jar發佈到互聯網上的某個地方?
我甚至不知道(或關心)我將要上傳的服務;任何工作。
你可以考慮設置一個GitHub的倉庫,只用於發佈工件(你正在構建爲GitHub releases)
在gradle這個,你可以使用:
你可以使用某種神器ory,像sonatype nexus或jfrog artifactory。他們是一個很好的CI架構的主要博客。
https://www.jfrog.com/article/continuous-integration-systems/
可以發佈到bintray.com(從jfrog)。
這將會給你一個回購你可以使用像這樣:
repositories {
maven {
url 'https://dl.bintray.com/yourOrg/yourRepo/'
}
}
然後,如果你對jcenter()
庫認真,自動同步僅僅是一個點擊和批准了。
要通過gradle這個任務上傳:
plugins {
id 'com.jfrog.bintray' version '1.7.3'
}
apply plugin: 'maven-publish'
group 'com.example' //your group ID
version '0.1' //your version
//required for jcenter
task sourcesJar(type: Jar, dependsOn: classes) {
classifier = 'sources'
from sourceSets.main.allSource
}
//required for jcenter
task javadocJar(type: Jar, dependsOn: javadoc) {
classifier = 'javadoc'
from javadoc.destinationDir
}
artifacts {
archives jar
archives sourcesJar //required for jcenter
archives javadocJar //required for jcenter
}
publishing {
publications {
MyPublication(MavenPublication) {
groupId group
artifactId 'Base58'
version project.version
//again, sources and javadoc required for jcenter
artifact("$buildDir/libs/projectName-${project.version}-sources.jar") {
classifier = 'sources'
}
artifact("$buildDir/libs/projectName-${project.version}-javadoc.jar") {
classifier = 'javadoc'
}
artifact("$buildDir/libs/projectName-${project.version}.jar")
}
}
}
// To upload a new version
// ./gradlew clean
// ./gradlew build bintrayUpload -Puser=user -Pkey=APIKEY
bintray {
user = project.ext.properties.user
key = project.ext.properties.key
publications = ['MyPublication']
pkg {
repo = 'YourBinTrayRepo'
name = 'YourBinTrayProjectName'
userOrg = 'YourBinTrayOrganizationIfApplicable'
licenses = //any licences applicable
vcsUrl = 'URL to source'
version project.version
}
}
所以上傳:
./gradlew clean
./gradlew build bintrayUpload -Puser=user -Pkey=APIKEY
然後在bintray跳砸發佈。