Ayfri
05/31/2023, 9:20 PM:run
task to the Kotlin project of this task ?Jason Robinson
05/31/2023, 9:39 PMBuildConfig
on Android? Check out https://github.com/yshrsmz/BuildKonfig.Ayfri
05/31/2023, 9:47 PM:run
Gradle task, how do I set environment variables to be set for the kotlin code and not for Gradle itself ?Jason Robinson
05/31/2023, 9:50 PMAyfri
05/31/2023, 9:51 PMSystem.getenv("variable")
Jason Robinson
05/31/2023, 9:52 PMAyfri
05/31/2023, 9:52 PMJason Robinson
05/31/2023, 9:52 PMJason Robinson
05/31/2023, 9:53 PMbuild.gradle
and it generates a class with those values that you can reference in code.Ayfri
05/31/2023, 9:54 PM.env
file then, it looks like it's simpler to install than BuildKonfig, but thanks for the information, it's still interesting to know !Jason Robinson
05/31/2023, 9:58 PMbuild.gradle
to get exactly what you want using BuildKonfig. Add the dependency, apply the plugin, then add the field you want though its config.eskatos
06/01/2023, 9:48 AMtasks.run {
environment("MY_ENV_VAR", "some-value")
}
Tyler Kinkade
02/23/2024, 4:58 AMbuild.gradle.kts
(Gradle 8.5)
tasks.run {
environment("MY_ENV_VAR", "some-value")
}
Results in:
Unresolved reference. None of the following candidates is applicable because of receiver type mismatch:
public inline fun <T : AbstractExecTask<*>> AbstractExecTask<TypeVariable(T)>.environment(vararg environmentVariables: Pair<String, Any?>): TypeVariable(T) defined in org.gradle.kotlin.dsl
public inline fun JavaExec.environment(vararg environmentVariables: Pair<String, Any?>): JavaExec defined in org.gradle.kotlin.dsl
public inline fun Test.environment(vararg environmentVariables: Pair<String, Any?>): Test defined in org.gradle.kotlin.dsl
public inline fun ProcessForkOptions.environment(vararg environmentVariables: Pair<String, Any?>): ProcessForkOptions defined in org.gradle.kotlin.dsl
eskatos
02/23/2024, 7:47 AMeskatos
02/23/2024, 7:47 AMtasks.run {
environment("MY_ENV_VAR" to "some-value")
}
Tyler Kinkade
02/24/2024, 11:02 PMval ktor_version: String by project
val kotlin_version: String by project
val logback_version: String by project
plugins {
kotlin("jvm") version "1.9.22"
id("io.ktor.plugin") version "2.3.8"
}
group = "com.example"
version = "0.0.1"
application {
mainClass.set("com.example.ApplicationKt")
val isDevelopment: Boolean = project.ext.has("development")
applicationDefaultJvmArgs = listOf("-Dio.ktor.development=$isDevelopment")
}
repositories {
mavenCentral()
}
dependencies {
implementation("io.ktor:ktor-server-core-jvm")
implementation("io.ktor:ktor-server-netty-jvm")
implementation("ch.qos.logback:logback-classic:$logback_version")
testImplementation("io.ktor:ktor-server-tests-jvm")
testImplementation("org.jetbrains.kotlin:kotlin-test-junit:$kotlin_version")
}
tasks.run {
environment("MY_ENV_VAR" to "some-value")
}
$ ./gradlew --version
------------------------------------------------------------
Gradle 8.4
------------------------------------------------------------
Build time: 2023-10-04 20:52:13 UTC
Revision: e9251e572c9bd1d01e503a0dfdf43aedaeecdc3f
Kotlin: 1.9.10
Groovy: 3.0.17
Ant: Apache Ant(TM) version 1.10.13 compiled on January 4 2023
JVM: 17.0.9 (Private Build 17.0.9+9-Ubuntu-122.04)
OS: Linux 6.5.0-21-generic amd64
$ ./gradlew build
Script compilation error:
Line 33: environment("MY_ENV_VAR" to "some-value")
^ Unresolved reference. None of the following candidates is applicable because of receiver type mismatch:
public inline fun <T : AbstractExecTask<*>> AbstractExecTask<TypeVariable(T)>.environment(vararg environmentVariables: Pair<String, Any?>): TypeVariable(T) defined in org.gradle.kotlin.dsl
public inline fun JavaExec.environment(vararg environmentVariables: Pair<String, Any?>): JavaExec defined in org.gradle.kotlin.dsl
public inline fun Test.environment(vararg environmentVariables: Pair<String, Any?>): Test defined in org.gradle.kotlin.dsl
public inline fun ProcessForkOptions.environment(vararg environmentVariables: Pair<String, Any?>): ProcessForkOptions defined in org.gradle.kotlin.dsl
1 error
I wonder if there are some other dependencies that need to be installed?eskatos
02/27/2024, 9:02 AMrun
function.eskatos
02/27/2024, 9:02 AM(tasks.run) { ... }
Tyler Kinkade
02/28/2024, 5:39 AMeskatos
02/28/2024, 8:10 AMAny
like apply
, let
, also
etc..eskatos
02/28/2024, 8:11 AMtasks.run
which is a property on tasks
for the run
Gradle task. And then we call the invoke
operator on it with { ... }
.Tyler Kinkade
02/28/2024, 9:39 AM