android - 无法将 JGit 导入 gradle 构建脚本
问题描述
我想JGit
在我的app/gradle.build
脚本中使用能够获取当前标签来为我的 android 项目创建版本名称。
我在build.gradle
下面的根目录中声明了依赖项
buildscript {
ext.kotlin_version = '1.3.50'
repositories {
google()
jcenter()
mavenCentral()
maven {
url "https://repo.eclipse.org/content/groups/releases/"
}
}
dependencies {
classpath 'com.android.tools.build:gradle:3.5.1'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
classpath 'org.eclipse.jgit:org.eclipse.jgit:5.5.0.201909110433-r'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
allprojects {
repositories {
google()
jcenter()
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}
但是在我同步之后,我的 JGit 中仍然没有可用app/build.gradle
def versionNameFromTag() {
Git git = new Git(repository) // <- Unresolved Reference: Git
}
更新
我能够通过/build.gradle
以下依赖声明修复将 JGit 放入我的根文件
buildscript {
ext.kotlin_version = '1.3.50'
repositories {
google()
jcenter()
mavenCentral()
maven {
url "http://download.eclipse.org/jgit/maven"
}
}
dependencies {
classpath 'com.android.tools.build:gradle:3.5.2'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
classpath "org.eclipse.jgit:org.eclipse.jgit:5.5.+"
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
allprojects {
repositories {
google()
jcenter()
}
}
// Now Compiles with JGit dependencies
import org.eclipse.jgit.api.Git
import org.eclipse.jgit.storage.file.FileRepositoryBuilder
import org.eclipse.jgit.lib.*
import org.eclipse.jgit.revwalk.*
但我app/build.gradle
仍然无法导入 JGit
// Still doesn't compile
import org.eclipse.jgit.api.Git // <- Unresolved Reference: Git
def versionNameFromTag() {
Git git = new Git(repository) // <- Unresolved Reference: Git
}
解决方案
每个 Gradle 脚本都是独立的,当您使用该buildscript
块添加依赖项时,这些依赖项在声明它们的脚本中是本地的。这些依赖项不会传播到包含的项目。
您有几个选项,按优先顺序排列:
- 通过包含的 build in
buildSrc
添加此依赖项,然后它将使其可用于您的所有项目。 - 在所有需要的脚本中复制声明
jgit
推荐阅读
- android - 访问另一个 gradle 文件中的 buildConfigField
- javascript - React Native 挑战任务
- sql-server - 设置 Microsoft 分析服务器模式
- r - 如果开始和结束时间可用,R 每天汇总数据
- javascript - export default 和 export { default } 的区别
- javascript - 如何使用 vuejs 显示谷歌地图
- python - 将自然语言查询转换为 SQL 查询的任务
- android - Google Play - 确认订阅的购买令牌时出现错误“subscriptionNotOwnedByUser”
- java - com.fasterxml.jackson.databind.exc.InvalidDefinitionException:没有为 ObjectReader 配置值类型
- c# - 如何正确嵌入