在根项目“工作区”中找不到任务“构建”。一些候选人是:'建立'

时间:2016-07-04 14:54:12

标签: android-studio jenkins jenkins-plugins

我无法使用gradle 2.10构建项目,我尝试过不同版本,但问题是相同的。

我正在使用jenkins 2.10版本。同一个项目可以由android studio构建。

有人可以帮我配置Jenkins配置,我已经定义了SDK路径,有gradle插件等。

[ERROR] [org.gradle.BuildExceptionReporter] FAILURE: Build failed with an exception.
[ERROR] [org.gradle.BuildExceptionReporter] * What went wrong:
[ERROR] [org.gradle.BuildExceptionReporter] Task 'built' not found in root project 'workspace'. Some candidates are: 'build'.
* Try:
[ERROR] [org.gradle.BuildExceptionReporter] Run gradle tasks to get a list of available tasks. 
20:11:26.063 [ERROR] [org.gradle.BuildExceptionReporter] * Exception is:
20:11:26.063 [ERROR] [org.gradle.BuildExceptionReporter] org.gradle.execution.TaskSelectionException: Task 'built' not found in root project 'workspace'. Some candidates are: 'build'.

我只是在构建中添加了附加步骤,我是否需要添加另一个构建步骤? enter image description here

1 个答案:

答案 0 :(得分:1)

没有构建任务,请尝试构建,这可以解决您的问题。

但是,将参数化作业是一种很好的做法,您可以使用 assembleDebug assembleRelease 任务。通过这种方式,您可以单独触发构建以进行自动化集成测试和构建,而无需复制作业。

使用Parametrized trigger plugin定义参数。

Gradle Tasks区域中参数用法示例:

 $BUILD_PROFILE
 -PKEYSTORE_PATH=$SIGNING_KEYSTORE_PATH
 -PKEYSTORE_ALIAS=$KEYSTORE_ALIAS
 -PKEYSTORE_PASSWORD=$SIGNING_PASSWORD

build.gradle 文件中,您可以添加以下部分:

signingConfigs {
    release {
        storeFile file(getPropertyFromBuildCommand("KEYSTORE_PATH"))
        storePassword getPropertyFromBuildCommand("KEYSTORE_PASSWORD")
        keyAlias getPropertyFromBuildCommand("KEYSTORE_ALIAS")
        keyPassword getPropertyFromBuildCommand("KEYSTORE_PASSWORD")
    }
}
buildTypes {
    release {
        minifyEnabled true
        shrinkResources true
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        signingConfig signingConfigs.release
    }
}

如果正确设置,则可以生成命令,例如:

gradle assembleRelease -PKEYSTORE_ALIAS=prodKey -PKEYSTORE_PATH=/home/jenkins/my-prod-keys.jks -PKEYSTORE_PASSWORD=yourPassword

这将在Google Play商店中为生产和提交构建一个已签名的apk,您可以使用flexible publishconditional build step来分支您的构建流程。