Hello,
I want to integrate the Gradle Release Plugin into an existing CUBA application. This has always worked in other projects so far. But now I get the error message " Task with name ‘build’ not found in root project" after I have add the plugin section
plugins {
id 'net.researchgate.release' version '2.6.0'
}
and I can’t find the cause.
build.gradle:
buildscript {
ext.cubaVersion = '7.1.1'
repositories {
maven {
url 'https://repo.cuba-platform.com/content/groups/work'
credentials {
username(rootProject.hasProperty('repoUser') ? rootProject['repoUser'] : 'cuba')
password(rootProject.hasProperty('repoPass') ? rootProject['repoPass'] : 'cuba123')
}
}
}
dependencies {
classpath "com.haulmont.gradle:cuba-plugin:$cubaVersion"
classpath "org.sonarsource.scanner.gradle:sonarqube-gradle-plugin:2.7"
}
}
plugins {
id 'net.researchgate.release' version '2.6.0'
}
def modulePrefix = 'app'
def globalModule = project(":${modulePrefix}-global")
def coreModule = project(":${modulePrefix}-core")
def webModule = project(":${modulePrefix}-web")
def servletApi = 'javax.servlet:javax.servlet-api:3.1.0'
apply(plugin: 'cuba')
apply(plugin: 'org.sonarqube')
sonarqube {
properties {
property "sonar.host.url", "https://sonar.i"
property "sonar.login", "xxxx"
property "sonar.password", "xxxx"
property "sonar.scm.disabled", "true"
property "sonar.projectName", "ATKearnyTest"
property "sonar.java.binaries", "modules/**/build/**"
property "sonar.projectKey", "atkearnytest"
property "sonar.exclusions", "modules/web/build/themes-tmp/**, modules/web/themes/**, modules/web/web/**, modules/web/build/tmp/**, modules/web/build/distributions/**, modules/web/build/web/**, /modules/global/build/tmp/**, modules/core/test/**, modules/core/build/tmp/**, modules/core/build/db/**, modules/core/build/distributions/**, modules/core/db/**"
}
}
cuba {
artifact {
group = 'de.agentes.atkearneytest'
version = project.properties['version'].replaceAll('-SNAPSHOT', '')
isSnapshot = project.properties['version'].contains('-SNAPSHOT')
}
tomcat {
dir = "$project.rootDir/deploy/tomcat"
}
}
dependencies {
appComponent("com.haulmont.cuba:cuba-global:$cubaVersion")
appComponent('com.haulmont.addon.restapi:restapi-global:7.1.0')
appComponent("com.haulmont.reports:reports-global:$cubaVersion")
appComponent('de.diedavids.cuba.runtimediagnose:runtime-diagnose-global:1.4.1')
}
def postgres = 'org.postgresql:postgresql:42.2.5'
configure([globalModule, coreModule, webModule]) {
apply(plugin: 'java')
apply(plugin: 'maven')
apply(plugin: 'cuba')
dependencies {
testCompile('junit:junit:4.12')
}
task sourceJar(type: Jar) {
from file('src')
classifier = 'sources'
}
artifacts {
archives sourceJar
}
}
configure(globalModule) {
dependencies {
if (!JavaVersion.current().isJava8()) {
runtime('javax.xml.bind:jaxb-api:2.3.1')
runtime('org.glassfish.jaxb:jaxb-runtime:2.3.1')
}
}
entitiesEnhancing {
main {
enabled = true
}
}
}
configure(coreModule) {
configurations {
jdbc
dbscripts
}
dependencies {
compile(globalModule)
compileOnly(servletApi)
jdbc(postgres)
testRuntime(postgres)
}
task cleanConf(description: 'Cleans up conf directory') {
doLast {
def dir = new File(cuba.tomcat.dir, "/conf/${modulePrefix}-core")
if (dir.isDirectory()) {
ant.delete(includeemptydirs: true) {
fileset(dir: dir, includes: '**/*', excludes: 'local.app.properties')
}
}
}
}
task deploy(dependsOn: [assemble, cleanConf], type: CubaDeployment) {
appName = "${modulePrefix}-core"
appJars(modulePrefix + '-global', modulePrefix + '-core')
}
task createDb(dependsOn: assembleDbScripts, description: 'Creates local database', type: CubaDbCreation) {
dbms = 'postgres'
host = 'localhost'
dbName = 'atkearneytest'
dbUser = 'postgres'
dbPassword = 'postgres'
}
task updateDb(dependsOn: assembleDbScripts, description: 'Updates local database', type: CubaDbUpdate) {
dbms = 'postgres'
host = 'localhost'
dbName = 'atkearneytest'
dbUser = 'postgres'
dbPassword = 'postgres'
}
}
configure(webModule) {
configurations {
webcontent
}
dependencies {
compileOnly(servletApi)
compile(globalModule)
compile('org.jsoup:jsoup:1.12.1')
compile('org.asciidoctor:asciidoctorj:2.1.0')
compile('org.asciidoctor:asciidoctorj-pdf:1.5.0-beta.5')
compile('net.sourceforge.cssparser:cssparser:0.9.4')
// compile('org.w3c.css:sac:1.3')
}
task webArchive(type: Zip) {
from file("$buildDir/web")
from file('web')
classifier = 'web'
}
artifacts {
archives webArchive
}
task deployConf(type: Copy) {
from file('src')
include "de/agentes/atkearneytest/**"
into "$cuba.tomcat.dir/conf/${modulePrefix}"
}
task clearMessagesCache(type: CubaClearMessagesCache) {
appName = "${modulePrefix}"
}
deployConf.dependsOn clearMessagesCache
task cleanConf(description: 'Cleans up conf directory') {
doLast {
def dir = new File(cuba.tomcat.dir, "/conf/${modulePrefix}")
if (dir.isDirectory()) {
ant.delete(includeemptydirs: true) {
fileset(dir: dir, includes: '**/*', excludes: 'local.app.properties')
}
}
}
}
task deploy(dependsOn: [assemble, cleanConf], type: CubaDeployment) {
appName = "${modulePrefix}"
appJars(modulePrefix + '-global', modulePrefix + '-web')
}
task buildScssThemes(type: CubaWebScssThemeCreation)
task deployThemes(type: CubaDeployThemeTask, dependsOn: buildScssThemes)
assemble.dependsOn buildScssThemes
task themesJar(type: Jar) {
from file('themes')
classifier = 'themes'
}
artifacts {
archives themesJar
}
}
task undeploy(type: Delete, dependsOn: ":${modulePrefix}-web:cleanConf") {
delete("$cuba.tomcat.dir/shared")
delete("$cuba.tomcat.dir/webapps/${modulePrefix}-core")
delete("$cuba.tomcat.dir/webapps/${modulePrefix}")
}
task restart(dependsOn: ['stop', ":${modulePrefix}-core:deploy", ":${modulePrefix}-web:deploy"], description: 'Redeploys applications and restarts local Tomcat') {
doLast {
ant.waitfor(maxwait: 6, maxwaitunit: 'second', checkevery: 2, checkeveryunit: 'second') {
not {
socket(server: 'localhost', port: '8787')
}
}
start.execute()
}
}
task buildWar(type: CubaWarBuilding) {
includeJdbcDriver = true
singleWar = false
appProperties = ['cuba.automaticDatabaseUpdate': true]
appHome = '../app_home'
logbackConfigurationFile = 'etc/war-logback.xml'
}
Thanks and best regards
Andreas