相关疑难解决方法(0)

Gradle中的实现和编译之间有什么区别?

在更新到Android Studio 3.0并创建一个新项目后,我注意到build.gradle有一种新方法可以添加新的依赖项,而不是compile存在implementation而不是testCompile存在testImplementation.

例:

 implementation 'com.android.support:appcompat-v7:25.0.0'
 testImplementation 'junit:junit:4.12'
Run Code Online (Sandbox Code Playgroud)

代替

 compile 'com.android.support:appcompat-v7:25.0.0'
 testCompile 'junit:junit:4.12'
Run Code Online (Sandbox Code Playgroud)

它们之间有什么区别,我应该使用什么?

dependency-management gradle transitive-dependency build.gradle gradle-plugin

899
推荐指数
10
解决办法
27万
查看次数

无法为参数Gradle找到方法compile()

现在考虑这个解决方案已经太久了,我不确定我是否错过了它或只是错误输入了一些内容,但我的Gradle脚本无法编译.我正在迁移到Gradle,我很新.我非常习惯使用Maven进行依赖管理,但Gradle现在看起来最好.从运行此代码片段:

dependencies {
  compile group: 'org.bukkit', name: 'bukkit', version: '1.7.9-R0.1-SNAPSHOT'
  compile('io.ibj:MattLib:1.1-SNAPSHOT') {
    exclude group: 'de.bananaco'
    exclude 'net.milkbowl:vault:1.2.27'
  }
  compile group: 'net.citizensnpcs', name: 'citizens', version: '2.0.12'
  compile group: 'com.sk89q', name: 'worldedit', version: '5.6.1'
  compile group: 'com.sk89q', name: 'worldguard', version: '5.9'
  compile group: 'net.milkbowl', name: 'vault', version: '1.2.12'
  compile fileTree(dir: 'libs', includes: ['*.jar'])
}
Run Code Online (Sandbox Code Playgroud)

注意:我确实应用了java,maven,nexus,shadow和rebel插件.

当我运行Gradle任务时,遇到此错误:

Could not find method compile() for arguments [[io.ibj:MattLib:1.1-SNAPSHOT], build_1b5iofu9r9krp7o8mme0dqo9l$_run_closure2_closure8@66fb45e5] on root project 'project'
Run Code Online (Sandbox Code Playgroud)

如果我从项目中删除"MattLib"依赖项并将其重新插入

compile 'io.ibj:MattLib:1.1-SNAPSHOT'
Run Code Online (Sandbox Code Playgroud)

该脚本完成,但我有依赖性问题.我在这里读到:

dependencies {
  compile("org.gradle.test.excludes:api:1.0") {
    exclude module: 'shared'
  }
} …
Run Code Online (Sandbox Code Playgroud)

java groovy gradle

87
推荐指数
8
解决办法
15万
查看次数