0

Я использую gradle release plugin для подталкивания артефактов к искусству. Я хочу выполнить следующие задачи перед публикацией - сборка, сборкаgradle не выполняет сборку во время задачи выпуска

В документации говорится, что задача сборки выполняется во время задачи выпуска.

1) Я хочу включить app.war и файл assets.zip (настроенный ниже) для публикации. как бы я это сделал?

2) текущая сборка терпит неудачу, когда я делать ./gradlew clean release с ошибкой

Cannot cast object 'task ':assemble'' with class 'org.gradle.api.DefaultTask_Decorated' to class 'groovy.lang.Closure'

, что является неправильным с с конфигурацией - release.dependsOn assemble?

3) Если я прокомментирую эту строку и выполнил, я вижу, что выполненная задача освобождения вызывает запрос на ввод номера версии. когда я выхожу из процесса (ctrl + C), я не вижу созданный каталог сборки. после выполнения сборки. то я ожидаю увидеть каталог сборки. почему я этого не вижу?

Вот build.gradle

buildscript { 
    repositories { 
     jcenter() 
     mavenLocal() 
     maven { 
      url "http://internal-repo" 
     } 
    } 
    dependencies { 
     classpath 'org.gradle.api.plugins:gradle-tomcat-plugin:1.2.3' 
     classpath "org.jfrog.buildinfo:build-info-extractor-gradle:+" 
     classpath 'net.researchgate:gradle-release:2.+' 
    } 
} 

allprojects { 
    apply plugin: "com.jfrog.artifactory"  
    apply plugin: 'net.researchgate.release' 
} 

repositories { 
    mavenLocal() 
    mavenCentral() 
    maven { url "http://internal-external-repo" } 
} 

apply plugin: "java" 
apply plugin: "maven" 
apply plugin: "war" 
apply plugin: 'tomcat' 
apply plugin: "eclipse" 
apply plugin: "idea" 
apply plugin: "jacoco" 

group 'com.mycompany.services' 

sourceCompatibility = '1.7' 
targetCompatibility = '1.7' 

war { 
    archiveName = "app.war" 
} 

task wrapper(type: Wrapper) { 
    gradleVersion = '2.11' 
} 
task copyJars(dependsOn: classes, type: Jar) { 
    // 
} 
assemble.dependsOn copyJars 

task copyAssets(type: Copy) { 
    // 
} 
compileJava.dependsOn copyAssets 

task makeZips(type: Zip) { 

    baseName = 'dependencies' 
    version = null 
    from('lib/') { 
     // 
      } 

      doLast { 
     copy { 
      from "$buildDir/distributions/dependencies.zip" 
      into "$project.rootProject.rootDir/apps/" 
     } 
    } 
} 

assemble.dependsOn(makeZips) 

task archiveZip (type: Zip, dependsOn: makeZip) { 

    from "$project.rootProject.rootDir/apps/dependencies.zip" 
} 

artifacts { 
    archives archiveZip 
} 

release { 
    git { 
     versionPropertyFile = 'version.txt' 
    } 
} 

afterReleaseBuild.dependsOn artifactoryPublish 
release.dependsOn build 
release.dependsOn assemble 


dependencies { 
    // 
} 

artifactory { 
    contextUrl = "http:/my-interal-repo" 
    publish { 
     repository { 
      repoKey = 'local' 
      maven = true 
      username = "foo" 
      password = "bar" 
     } 
     defaults { 
      publishConfigs ('archives') 
     } 
    } 
    resolve { 
     repository { 
      repoKey = 'release' 
      maven = true 
      username = 'foo' 
      password = 'bar' 
     } 
    } 
} 

когда я бегу

+0

Не могли бы вы попытаться распечатать как сборку, так и сборку объектов задачи и сравнение их имен классов? Также попробуйте и посмотрите, что произойдет, если вы используете «release.dependsOn build, собираете» вместо двух соответствующих строк. –

+0

Я удалил release.dependsOn build и имел только release.dependsOn собрать. Я получаю такую ​​же ошибку –

ответ

0

Вы можете настроить задачи сборки в закрытии плагин конфигурации.

release { 
    buildTasks = ['build'] 
}