Gradle Kotlin DSL 中的 Dynatrace 配置
Configuration of Dynatrace in Gradle Kotlin DSL
我有一个 Android 项目,使用在 kotlin-dsl 中编写的 Gradle 构建配置并尝试应用 Dynatrace:
buildscript {
repositories {
jcenter()
}
dependencies {
classpath("com.dynatrace.tools:android:7.2.4.1262")
}
}
// I apply the plugin
apply(plugin = "com.dynatrace.tools.android")
一切顺利,直到我尝试使用 dynatrace 配置块,但从未解决:
dynatrace {
defaultConfig {
....
}
}
这是我正在使用的环境:
- Gradle: 5.1.1
- Android Gradle 插件: 3.4.1
- Dynatrace 版本:7.2.4.1262
我正在关注 Dynatrace's own instructions, and even though they don't mention how to perform the configuration with the kotlin-dsl, they have just added support for it。
如有任何帮助,我们将不胜感激。
我已经用 apply
DSL 试过了,但没有成功。我通过 plugins
DSL 应用了插件。
顶级build.gradle.kts
:
buildscript {
repositories {
google()
jcenter()
}
dependencies {
classpath("com.android.tools.build:gradle:3.5.0-beta01")
classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:1.3.31")
classpath("com.dynatrace.tools:android:7.2.4.1262")
}
}
allprojects {
repositories {
google()
jcenter()
}
}
应用build.gradle.kts
:
plugins {
id("com.android.application")
kotlin("android")
id("com.dynatrace.tools.android")
...
}
android {
defaultConfig {
...
}
buildTypes {
...
}
}
dynatrace {
defaultConfig {
...
}
}
dependencies {
...
}
我在尝试将我的 build.gradle 迁移到 KTS(使用 dynatrace 配置)时遇到了同样的问题。
我在 Dynatrace 网站上找到正确的文档时遇到了一些问题,但最后我找到了 (https://www.dynatrace.com/support/help/how-to-use-dynatrace/real-user-monitoring/setup-and-configuration/mobile-apps/instrument-android-app/instrumentation-via-plugin/instrumentation-via-plugin/#tabgroup-android-gradle-plugin--groovy)
我的解决方案,在顶级 build.gradle.kts
:
buildscript {
repositories {
google()
mavenCentral()
}
dependencies {
classpath("com.dynatrace.tools.android:gradle-plugin:8.207.1.1004")
}
}
apply(plugin = "com.dynatrace.instrumentation")
configure<com.dynatrace.tools.android.dsl.DynatraceExtension> {
configurations {
create("prod") {
variantFilter("[rR]elease")
autoStart {
applicationId("xxx")
beaconUrl("yyy")
}
userOptIn(true)
userActions.timeout(5000)
}
create("debug") {
autoStart {
applicationId("aaa")
beaconUrl("bbb")
}
userOptIn(true)
userActions.timeout(5000)
}
}
}
我有一个 Android 项目,使用在 kotlin-dsl 中编写的 Gradle 构建配置并尝试应用 Dynatrace:
buildscript {
repositories {
jcenter()
}
dependencies {
classpath("com.dynatrace.tools:android:7.2.4.1262")
}
}
// I apply the plugin
apply(plugin = "com.dynatrace.tools.android")
一切顺利,直到我尝试使用 dynatrace 配置块,但从未解决:
dynatrace {
defaultConfig {
....
}
}
这是我正在使用的环境:
- Gradle: 5.1.1
- Android Gradle 插件: 3.4.1
- Dynatrace 版本:7.2.4.1262
我正在关注 Dynatrace's own instructions, and even though they don't mention how to perform the configuration with the kotlin-dsl, they have just added support for it。
如有任何帮助,我们将不胜感激。
我已经用 apply
DSL 试过了,但没有成功。我通过 plugins
DSL 应用了插件。
顶级build.gradle.kts
:
buildscript {
repositories {
google()
jcenter()
}
dependencies {
classpath("com.android.tools.build:gradle:3.5.0-beta01")
classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:1.3.31")
classpath("com.dynatrace.tools:android:7.2.4.1262")
}
}
allprojects {
repositories {
google()
jcenter()
}
}
应用build.gradle.kts
:
plugins {
id("com.android.application")
kotlin("android")
id("com.dynatrace.tools.android")
...
}
android {
defaultConfig {
...
}
buildTypes {
...
}
}
dynatrace {
defaultConfig {
...
}
}
dependencies {
...
}
我在尝试将我的 build.gradle 迁移到 KTS(使用 dynatrace 配置)时遇到了同样的问题。 我在 Dynatrace 网站上找到正确的文档时遇到了一些问题,但最后我找到了 (https://www.dynatrace.com/support/help/how-to-use-dynatrace/real-user-monitoring/setup-and-configuration/mobile-apps/instrument-android-app/instrumentation-via-plugin/instrumentation-via-plugin/#tabgroup-android-gradle-plugin--groovy)
我的解决方案,在顶级 build.gradle.kts
:
buildscript {
repositories {
google()
mavenCentral()
}
dependencies {
classpath("com.dynatrace.tools.android:gradle-plugin:8.207.1.1004")
}
}
apply(plugin = "com.dynatrace.instrumentation")
configure<com.dynatrace.tools.android.dsl.DynatraceExtension> {
configurations {
create("prod") {
variantFilter("[rR]elease")
autoStart {
applicationId("xxx")
beaconUrl("yyy")
}
userOptIn(true)
userActions.timeout(5000)
}
create("debug") {
autoStart {
applicationId("aaa")
beaconUrl("bbb")
}
userOptIn(true)
userActions.timeout(5000)
}
}
}