Java 从gradle重用资源
全部, 假设我有一个带有gradle的JAVA项目。 在buidl.gradle文件中,我有一个如下定义的属性:Java 从gradle重用资源,java,gradle,Java,Gradle,全部, 假设我有一个带有gradle的JAVA项目。 在buidl.gradle文件中,我有一个如下定义的属性: packageName = "svc.pvtbroker" //name of the package defaultConfig { ... buildConfigField("String", "API_KEY", "123456789") } defaultConfig { ... bu
packageName = "svc.pvtbroker" //name of the package
defaultConfig {
...
buildConfigField("String", "API_KEY", "123456789")
}
defaultConfig {
...
buildConfigField("String", "API_KEY", API_KEY_INSIDE_GRADLE_PROPERTIES)
}
有没有一种简单的方法可以在Java源代码中使用这个packageName
蒂娅 Inside.app gradle按如下方式声明您的属性:
packageName = "svc.pvtbroker" //name of the package
defaultConfig {
...
buildConfigField("String", "API_KEY", "123456789")
}
defaultConfig {
...
buildConfigField("String", "API_KEY", API_KEY_INSIDE_GRADLE_PROPERTIES)
}
然后以以下方式在java源代码中导入属性:
import static yourpackage.BuildConfig.API_KEY;
暗示
我还在gradle.properties中声明我的密钥
API_KEY_INSIDE_GRADLE_PROPERTIES="123456789"
通过这种方式,您可以像这样使用BuildConfigField:
packageName = "svc.pvtbroker" //name of the package
defaultConfig {
...
buildConfigField("String", "API_KEY", "123456789")
}
defaultConfig {
...
buildConfigField("String", "API_KEY", API_KEY_INSIDE_GRADLE_PROPERTIES)
}
希望有帮助。您可以生成java文件或资源,并将生成的文件夹添加到资源或编译的源代码中 比如说,我们希望packageName在运行时通过静态方法可用
task generateJava {
// set inputs/outputs for up to date checks
inputs.property('packageName', project.property('packageName'))
outputs.dir "$buildDir/generated/java"
doLast {
File f = file("$buildDir/generated/java/GradleProperties.java"
f.parentFile.mkdirs()
f.text =
"""
public class GradleProperties {
public static String getPackageName() {
return \"${packageName}\";
}
}
"""
}
}
// add the dir to the java sources
sourceSets.main.java.srcDir "$buildDir/generated/java"
// wire the task into the DAG
compileJava.dependsOn generateJava
你可以这样做我猜@anfreebano,两次声明的目的是什么?我想避免它,只在一个地方…如果你想在一个地方所有的属性,我认为gradle.properties是正确的地方。