我有一个 gradle 项目,我需要在其中进行一些自动发布,我应该使用nebula-release-plugin。我之前没有尝试过使用 gradle 发布,所以我遵循这种方法。当我尝试添加 nebula 插件时,我得到一个Task with name 'release' not found in root project 'my-project-name'
. 该文档没有说明有关指定发布任务的任何内容,因此我不知道如何制作。我知道我需要指定一种部署应用程序的方法,但是很难找到一种可行且与 nebula 兼容的方法。
我的build.gradle
:
plugins {
id 'org.springframework.boot' version '2.5.2'
id 'io.spring.dependency-management' version '1.0.11.RELEASE'
id 'java'
id 'com.github.bjornvester.wsdl2java' version '1.1'
id 'com.github.johnrengelman.shadow' version '7.0.0'
id 'maven-publish'
id 'nebula.release' version '13.2.1' // https://github.com/nebula-plugins/nebula-release-plugin
}
group = 'dk.dxc'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '11'
repositories {
mavenCentral()
}
task unpack(type: Copy) {
dependsOn bootJar
from(zipTree(tasks.bootJar.outputs.files.singleFile))
into('build/dependency')
}
test {
useJUnitPlatform()
}
publishing {
publications {
mavenJava(MavenPublication) {
artifactId = Project.getName()
from components.java
versionMapping {
usage('java-api') {
fromResolutionOf('runtimeClasspath')
}
usage('java-runtime') {
fromResolutionResult()
}
}
pom {
name = 'soap-demo-gradle'
description = 'A template for soap services using gradle'
scm {
connection = 'scm:git:url/to/my/git/repo'
developerConnection = 'scm:git:url/to/my/git/repo'
url = 'scm:git:url/to/my/git/repo'
}
}
}
}
repositories {
maven {
def releasesRepoUrl = "url/to/my/nexus/repo"
def snapshotsRepoUrl = "url/to/my/nexus/repo"
url = version.endsWith('SNAPSHOT') ? snapshotsRepoUrl : releasesRepoUrl
}
}
}