- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在 Android Studio 中创建了一个新项目并将 gradle buildscript 转换为使用 kotlin dsl,如下所示:
build.gradle.kts(项目)
buildscript {
repositories {
google()
jcenter()
}
dependencies {
classpath("com.android.tools.build:gradle:4.1.1")
classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:1.4.10")
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
allprojects {
repositories {
google()
jcenter()
}
}
tasks.register("clean", Delete::class) {
delete(rootProject.buildDir)
}
build.gradle.kts(应用程序)
plugins {
id("com.android.application")
kotlin("android")
}
android {
compileSdkVersion(30)
buildToolsVersion = "30.0.2"
defaultConfig {
applicationId = "com.myproject"
minSdkVersion(16)
targetSdkVersion(30)
versionCode = 1
versionName = "1.0"
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
}
buildTypes {
named("release").configure {
isMinifyEnabled = false
proguardFiles( getDefaultProguardFile("proguard-android-optimize.txt"), "proguard-rules.pro")
}
}
compileOptions {
sourceCompatibility = JavaVersion.VERSION_1_8
targetCompatibility = JavaVersion.VERSION_1_8
}
kotlinOptions {
jvmTarget = "1.8"
}
}
dependencies {
implementation("org.jetbrains.kotlin:kotlin-stdlib:1.4.10")
implementation( "androidx.core:core-ktx:1.3.2")
implementation( "androidx.appcompat:appcompat:1.2.0")
implementation( "com.google.android.material:material:1.2.1")
implementation( "androidx.constraintlayout:constraintlayout:2.0.4")
testImplementation( "junit:junit:4.+")
androidTestImplementation( "androidx.test.ext:junit:1.1.2")
androidTestImplementation( "androidx.test.espresso:espresso-core:3.3.0")
}
最后,build.gradle.kts (BuildSrc)
import org.gradle.kotlin.dsl.`kotlin-dsl`
plugins {
`kotlin-dsl`
}
repositories {
jcenter()
}
dependencies {
implementation(kotlin("script-runtime"))
}
这有效,项目按预期构建。
现在我想将这些硬编码的版本号和名称中的一些提取到常量中。例如,我想更改此行:实现(“org.jetbrains.kotlin:kotlin-stdlib:1.4.10”)
到:实现(“org.jetbrains.kotlin:${ProjectConfig.KOTLIN_VERSION}”)
所以我在 buildSrc/src/main/java/ProjectConfig.kt
中创建了一个新文件,如下所示:
object ProjectConfig {
const val KOTLIN_VERSION:String = "1.4.10"
}
但是当我尝试从我的 gradle 脚本中引用这个对象并进行 gradle sync 时,我收到以下错误:
e: E:\projects\MyProject\build.gradle.kts:11:58: Unresolved reference:ProjectConfig
定义可从我的所有 build.gradle 文件中引用的对象的正确方法是什么?
最佳答案
这是我在 root build.gradle.kts 中发现的有关类可用性的信息:
在根级别:
在“构建脚本” block 中:
这是通过 Gradle 7 确定的。
关于android - gradle buildscript 无法解析 buildSrc 中定义的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65975953/
我的目标是拥有一个其他构建文件可以在 gradle 中看到的通用类。我创建了一个名为 buildSrc 的文件夹,它位于我的 android 项目的根目录中。内容如下所示: class Cou
我们有一个 Gradle 构建,其中包括 buildSrc带有一些自定义插件。这些插件还适用于其他插件。例如,我们的插件适用于 com.android.tools.build:gradle .对于注释
我有一个单一的build.gradle构建一个应用程序。它由几个任务组成(缩小、合并文件、gzip、上传到 CDN、调用外部脚本等) 我设法将所有内容移至 build.gradle到 buildsrc
我需要读取位于 buildSrc 特殊模块的 resources 文件夹内的属性文件来创建其他项目模块可以访问的 kotlin 对象。我试着把这个属性文件放在一起 在根项目文件夹中(这种情况有时有效有
将我的 gradle gradle-5.4.1 升级到 gradle-6.3 后,我收到了类似 的错误'buildSrc' 不能用作项目名称,因为它是保留名称。 我正在使用 buidleSrc 进行
我正在尝试切换到使用 Kotlin DSL 从对象 Kotlin 文件而不是 gradle 文件获取依赖项版本。当我执行 gradle sync 时,它无法解析引用,但我可以从 build.gradl
我有一个具有 buildSrc 目录的 Gradle 项目。主项目和 buildSrc 项目都需要知道 Artifactory 服务器的 URL。我希望将 URL 保存在一个地方,并且希望将其保存在源
在 gradle 中,使用 buildSrc 的目的是什么?文件作为顶级文件,而不是典型的 java 项目布局(src/main/java)? 如果我有一个布局 src main j
我有一个非常典型的 Gradle 库项目,其中包含一组依赖于一些常见配置的模块(Android 或纯 Java)。 这个通用配置被抽象为一个“publishConfig.gradle”文件(在需要它的
我正在尝试创建一个 Flavor 配置以避免每个模块和库 gradle 文件中的样板代码。 为此,我正在尝试转换 Piotr Zawadzki 解决方案 ( https://medium.com/st
假设我有一些类包含我想在 Gradle 构建期间和 Java 应用程序本身中使用的逻辑。如何配置 Gradle 构建以在构建和正在构建的项目之间共享相同的类,例如使用 Kotlin DSL? 最佳答案
我正在为我的公司编写一个自定义 Gradle 插件,以协助对我们的产品进行集成测试。我的团队希望在主要产品构建中构建和使用该插件(就像“buildSrc”插件一样),但还需要将该插件作为工件发布,以供
我有一个工作 build.gradle我想重构到 buildSrc 目录中,但找不到依赖项。 工作 build.gradle: import groovyx.net.http.HTTPBuilder
我在 buildSrc 构建中有一些相当长的测试,有时我想在开发过程中跳过这些测试,以查看模板更改的效果。它是一个报告生成器,有时我只想调整模板而不必更新所有测试;然后当我对输出感到满意时我会更新它们
我有一个需要自动生成类的 Android 库项目。此类是在构建期间使用放置在 Library 项目的 buildSrc 目录中的 Groovy 脚本生成的。这本身就可以正常工作。 然后我有一个使用该库
我在 Android Studio 中创建了一个新项目并将 gradle buildscript 转换为使用 kotlin dsl,如下所示: build.gradle.kts(项目) buildsc
我正在使用 buildSrc多模块 Kotlin 项目中的模块到 manage dependency definitions and versions .该模块使用kotlin-dsl如build.g
我有 多项目建在 buildSrc 目录 buildSrc ---build --- subProject1 ----build (2)
我有一个 gradle 项目,正在创建一个自定义插件来做一些额外的构建工作。插件的源文件存储在 buildSrc/ 中。 .我有基本的框架工作,我可以通过运行 gradle tasks 查看插件任务。
我关注 this tutorial关于如何在我的 Android 应用程序中使用 Kotlin 管理 Gradle 依赖项,现在我想在我的应用程序模块中使用我的 Versions 对象中定义的版本(场
我是一名优秀的程序员,十分优秀!