0

アーティファクトをアーティファクトにプッシュするために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'
        }
    }
}

私が走るとき

4

1 に答える 1

0

プラグイン構成クロージャーでビルド タスクを構成できます。

release {
    buildTasks = ['build']
}
于 2016-08-22T20:24:26.033 に答える