Gradle-релиз сборки и публикации артефактов без снимка
У меня есть многомодульный проект. И я хочу иметь возможность просто выпустить Gradle и получить все артефакты всех выпущенных модулей. Одна из проблем заключается в том, что когда я включаю плагины, я получаюTask with name 'build' not found in root project '
Итак, следуя некоторым советам в Интернете, я создал задачу сборки и добавил к ней кучу зависимостей:
plugins {
id "net.researchgate.release" version "2.6.0"
}
defaultTasks 'clean', 'assemble'
def repoUrl = System.env.REPO ?: "https://company.jfrog.io/company/maven"
allprojects {
repositories {
mavenCentral()
jcenter()
maven {
url 'https://dl.bintray.com/palantir/releases'
}
maven {
credentials {
username System.env.REPO_USER
password System.env.REPO_PASS
}
url repoUrl
name 'company'
}
}
}
task build{}
subprojects { thisProject ->
apply plugin: 'java'
apply plugin: 'maven'
apply plugin: 'checkstyle'
apply plugin: 'maven-publish'
apply plugin: 'findbugs'
build.dependsOn "${thisProject}:build"
publishing {
repositories {
maven {
credentials {
username System.env.REPO_USER
password System.env.REPO_PASS
}
url repoUrl
name 'company'
}
}
publications {
"-$thisProject.name-"(MavenPublication) {
from components.java
}
}
}
sourceCompatibility = 1.8 // java 8
targetCompatibility = 1.8
task sourcesJar(type: Jar, dependsOn: classes) {
classifier = 'sources'
from sourceSets.main.allSource
}
task javadocJar(type: Jar, dependsOn: javadoc) {
classifier = 'javadoc'
from javadoc.destinationDir
}
artifacts {
archives sourcesJar
archives javadocJar
}
}
tasks.each {println(it)}
afterReleaseBuild.dependsOn tasks.publish
когда я бегу gradle tasks --all
я получил
task ':afterReleaseBuild'
task ':beforeReleaseBuild'
task ':build'
task ':checkCommitNeeded'
task ':checkSnapshotDependencies'
task ':checkUpdateNeeded'
task ':commitNewVersion'
task ':confirmReleaseVersion'
task ':createReleaseTag'
task ':createScmAdapter'
task ':initScmAdapter'
task ':preTagCommit'
task ':release'
task ':runBuildTasks'
task ':unSnapshotVersion'
task ':updateVersion'
"релиз" работает. То есть он удаляет версии, теги, удаляет "-SNAPSHOT" и т. Д. Но здесь не хватает шага (и это может быть моим невежеством), но после удаления "-SNAPSHOT" из версии I нужно построить артефакты и опубликовать их. Это похоже на процесс выпуска Maven, но без загрузки артефакта. В настоящее время я использую публикацию Gradle, а не Maven.
Предостережения: Очень плохо знакомы с Gradle, но не Java. Может кто-нибудь сказать мне, что мне не хватает? _
1 ответ
Вы можете просто попытаться удалить build
задание из конфигурации плагина relesae.buildTasks = []
отлично работает для меня
release {
...
tagTemplate = '${version}'
versionPropertyFile = 'gradle.properties'
buildTasks = []
...
}