首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Java和Gradle项目中使用buildConfigField

如何在Java和Gradle项目中使用buildConfigField
EN

Stack Overflow用户
提问于 2018-02-18 19:05:50
回答 1查看 491关注 0票数 0

我来自Android背景。我正在使用Java,Kotlin和Gradle为Alexa创建一个技能。出于某些原因,我想在buildConfigField中声明一个常量,就像我们在android中所做的那样,并从生成的BuildConfig.fieldName访问该字段。

我试过了,但是BuildConfig没有生成。

代码语言:javascript
复制
buildConfig {
    buildConfigField 'String', 'HOME', 'TEST_HOME'
}

Build.gradle(完整文件)

代码语言:javascript
复制
apply plugin: 'java'
apply plugin: 'kotlin'

version = '1.0'

compileJava {
    targetCompatibility = JavaVersion.VERSION_1_8
    sourceCompatibility = JavaVersion.VERSION_1_8
}

buildConfig {
    buildConfigField 'String', 'HOME', 'TEST_HOME'
}


jar {
    buildConfigField "String", "MY_CLOUD_API", '"http://12.3.456.789:123"'
    manifest {
        attributes 'Implementation-Title': 'Gradle Quickstart',
                   'Implementation-Version': version
    }
}

repositories {
    jcenter()
    mavenCentral()
}

sourceSets {
    main {
        java {
            srcDirs 'src'
        }
        resources {
            srcDirs 'src/resources'
        }
    }
}

dependencies {
    compile 'com.amazon.alexa:alexa-skills-kit:1.5.0'
    compile 'com.amazonaws:aws-lambda-java-core:1.0.0'
    compile 'com.amazonaws:aws-java-sdk-dynamodb:1.9.40'
    compile 'com.amazonaws:aws-lambda-java-log4j:1.0.0'

    compile 'log4j:log4j:1.2.17'
    compile 'org.apache.commons:commons-lang3:3.3.2'
    compile 'org.apache.directory.studio:org.apache.commons.io:2.4'
    compile 'org.eclipse.jetty:jetty-server:9.0.6.v20130930'
    compile 'org.eclipse.jetty:jetty-servlet:9.0.6.v20130930'
    compile 'org.slf4j:slf4j-api:1.7.10'
    compile "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlin_version"
}

task fatJar(type: Jar) {
    baseName = project.name + '-fat'
    from { configurations.compile.collect { it.isDirectory() ? it : zipTree(it) } }
    with jar
}

build.dependsOn fatJar
buildscript {
    ext.kotlin_version = '1.2.21'
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
    }
}
compileKotlin {
    kotlinOptions {
        jvmTarget = "1.8"
    }
}
EN

回答 1

Stack Overflow用户

发布于 2018-02-19 00:38:26

buildConfigField是在gradle的android插件中定义的。

你不能在另一个作用域中使用它。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48850947

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档