我正在向jCenter添加一个库,所以我需要在项目的build.gradle文件中添加一些插件。但是,我收到了错误
宣布定制'清洁'不允许使用标准Gradle生命周期插件时的任务。
我可以看到task clean
块,当我删除它时,错误消失了。我认为这就是我需要做的一切,但它之前是否做过重要的事情?如果我有时删除插件并忘记重新添加clean
块,那会有什么可怕的后果?
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:2.3.1'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
plugins {
id "com.jfrog.bintray" version "1.7.3"
id "com.github.dcendents.android-maven" version "1.5"
}
allprojects {
repositories {
jcenter()
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}
答案 0 :(得分:31)
您不应该尝试覆盖默认的clean
任务,而是将其配置为删除其他内容,例如
clean {
delete rootProject.buildDir
}
但首先检查这是否不是干净任务的默认行为。
或者,如果您希望能够单独执行特定的清理操作,还可以定义单独的任务并添加依赖项,例如
task customClean(type: Delete) {
delete rootProject.buildDir
}
clean.dependsOn customClean
答案 1 :(得分:6)
从代码中删除这些行。
task clean(type: Delete) {
delete rootProject.buildDir
}
答案 2 :(得分:3)
答案 3 :(得分:3)
在给定的代码中:
allprojects {
repositories {
google()
jcenter()
mavenCentral()
}
tasks.withType(JavaCompile) {
sourceCompatibility = "1.8"
targetCompatibility = "1.8"
}
task clean(type: Delete) {
delete rootProject.buildDir
}
}
将task clean
替换为task delete
,它将起作用:
allprojects {
repositories {
google()
jcenter()
mavenCentral()
}
tasks.withType(JavaCompile) {
sourceCompatibility = "1.8"
targetCompatibility = "1.8"
}
task delete(type: Delete) {
delete rootProject.buildDir`
}
}
答案 4 :(得分:2)
我有同样的问题,不幸的是,我把task clean
放在了错误的地方。我有这个:
allprojects {
repositories {
google()
jcenter()
mavenCentral()
}
tasks.withType(JavaCompile) {
sourceCompatibility = "1.8"
targetCompatibility = "1.8"
}
task clean(type: Delete) {
delete rootProject.buildDir
}
}
需要这样:
allprojects {
repositories {
google()
jcenter()
mavenCentral()
}
tasks.withType(JavaCompile) {
sourceCompatibility = "1.8"
targetCompatibility = "1.8"
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}
答案 5 :(得分:0)
enter code hereallprojects {
repositories {
google()
jcenter()
maven {
url 'https://maven.google.com'
}
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}
如果您已在“ build.gradle”中添加了maven,则请检查所有括号。代码应如上所述。它应该解决问题。括号可能放置在不同的位置。
答案 6 :(得分:0)
经过如此多的研究,我发现我们不得不对bulid.gradle(Project)中的干净任务行进行注释,如下所示:
// task clean(type: Delete) {
// delete rootProject.buildDir
// }][1][enter image description here][1]
答案 7 :(得分:-1)
6米 好的,我在Gradle中收到错误,它无法清除根项目文件。
:25 AM Gradle sync失败:不允许在使用标准Gradle生命周期插件时声明自定义“干净”任务。
错误代码 info-ide.actionsShowFilePathAction退出代码1
Clean Triggers nom run clean依赖于“npmInstall”
在Gradle doc 4.7中 执行Build的目录中的Project也已配置,但仅在没有任何任务的情况下执行Gradle时。这样,在按需配置项目时,默认任务就会正常运行。
按需配置Gradle 4.6 Gradle 3.01的Android插件或Gradle的3.1.0 Gradle属性文件 org.gradleconfigureondemand =假
所以我所做的就是将任务清理干净,现在我得到了一个构建单词,
我认为发生的事情是,如果您构建并修改了项目,此脚本将起作用。 下载项目时,您还没有第一次构建它。因此,没有根项目路径可以清理,因为它从未构建过。这导致它失败。 通过在第一次没有收到错误时将其注释掉。
这是代码。 //顶级构建文件,您可以在其中添加所有子项目/模块共有的配置选项。
`buildscript { ext.kotlin_version ='1.2.41'
ext.support_version = '26.1.0'
repositories {
google()
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.1.2'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
}
}
apply plugin: ‘kotlin’
allprojects {
repositories {
google()
jcenter()
}
}
/*
task clean(type: Delete) {
delete rootProject.buildDir
} */
'