bul*_*lly 242 java gradle build.gradle
我无法弄清楚这是否有效.
场景:
我想要的是
我想过拥有gradle.properties文件,定义变量.就像是
JAVA_HOME_FOR_MY_PROJECT=<path to my desired JDK>
Run Code Online (Sandbox Code Playgroud)
我不想要的
JAVA_HOME所需的JDK我可以接受很多建议:
use JAVA_HOME=<my special JDK path defined somewhere else defined>)题:
gradle.properties系统环境变量中的变量,......)连接到构建过程?我有多个JDK7可用,需要指向一个特殊版本(最低JDK_u版本).
任何答案都表示赞赏,我感谢每一个提示正确的方向.
Fir*_*ero 244
两种方式
gradle.properties的.gradle目录中HOME_DIRECTORYorg.gradle.java.home=/path_to_jdk_directory要么:
在你的 build.gradle
compileJava.options.fork = true
compileJava.options.forkOptions.executable = /path_to_javac
Run Code Online (Sandbox Code Playgroud)mir*_*sif 117
如果在gradle.properties中添加JDK_PATH,则构建将依赖于该特定路径.而是使用以下命令行参数来运行gradle任务
gradle build -Dorg.gradle.java.home=/JDK_PATH
Run Code Online (Sandbox Code Playgroud)
这样,您的构建不依赖于某些具体路径.
Gee*_*ert 89
对于在搜索Maven属性maven.compiler.source(或<source>1.8</source>)的Gradle等效项时在此处结束的人:
在build.gradle中,您可以实现此目的
apply plugin: 'java'
sourceCompatibility = 1.8
targetCompatibility = 1.8
Run Code Online (Sandbox Code Playgroud)
请参阅Gradle文档.
Ram*_*man 23
使用现代版本的 Gradle(版本 6.7+)执行此操作的正确方法是使用Gradle Java 工具链 支持。
以下块,当 java 插件应用于当前项目时,将在所有 java 编译、测试和 javadoc 任务中使用 Java 11:
java {
toolchain {
languageVersion.set(JavaLanguageVersion.of(11))
}
}
Run Code Online (Sandbox Code Playgroud)
这也可以为单个任务设置。
注意:对于依赖 Java 可执行文件或 Java home 的其他任务,请使用编译器元数据来设置适当的选项。以下是 Kotlin 编译器的示例:
val compiler = javaToolchains.compilerFor {
languageVersion.set(JavaLanguageVersion.of(11))
}
tasks.withType<KotlinJvmCompile>().configureEach {
kotlinOptions.jdkHome = compiler.get().metadata.installationPath.asFile.absolutePath
}
Run Code Online (Sandbox Code Playgroud)
Yek*_*ğlu 18
您可以通过在项目级别中指定来轻松指定所需的 Java 版本gradle.properties。这将影响当前项目,而不是改变整个系统中每个项目的语言级别。
org.gradle.java.home=<YOUR_JDK_PATH>
Run Code Online (Sandbox Code Playgroud)
Vit*_*Pai 13
如果使用gradle包装器执行,则可以使用JDK路径运行命令,如下所示
./gradlew -Dorg.gradle.java.home=/jdk_path_directory
如果您使用的是 linux 和 gradle 包装器,则可以使用以下解决方案。
将路径添加到 local.properties 文件:
javaHome=<path to JDK>
Run Code Online (Sandbox Code Playgroud)
添加到您的 gradlew 脚本文件:
DIR=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )
source $DIR/local.properties 2>/dev/null
if ! [ -z "$javaHome" ]
then
JAVA_HOME=$javaHome
fi
Run Code Online (Sandbox Code Playgroud)
在这个方案中,每个开发者都可以设置自己的JDK路径。文件local.properties不应包含在版本控制系统中。
还有一个选项可以遵循。在 Eclipse 中可用的 gradle 任务中,您可以设置所需的 jdk 路径。(我知道问题发布已经有一段时间了。这个答案可以帮助某人。)
右键单击部署或任何其他任务,然后选择“打开 Gradle 运行配置...”
然后导航到“Java Home”并粘贴所需的Java路径。
请注意,bin 将由 gradle 任务本身添加。所以不要将“bin”添加到路径中。
小智 7
对于 Windows 运行 gradle 任务,并在引号中包含 jdk 11 路径参数
gradlew clean build -Dorg.gradle.java.home="c:/Program Files/Java/jdk-11"
Run Code Online (Sandbox Code Playgroud)
对于 Windows,打开 cmd 并进入项目根目录,然后执行如下命令:
gradlew构建-Dorg.gradle.java.home =“jdk_path”
我的JDK位于此路径:C:\Program Files\Java\jdk-11.0.5。
因此,对于我的情况,如下所示:
gradlew build -Dorg.gradle.java.home="C:\Program Files\Java\jdk-11.0.5"
此外,如果您想指定某个变体,您可以这样做:
gradlew assembleDebug -Dorg.gradle.java.home="E:\AndroidStudio\jre"
此命令将使用Debug变体编译您的项目,并在 2 个文件夹中输出 2 个 apk(调试 + 发布)。
gradle.properties
org.gradle.jvmargs=-Xmx1536M
android.useAndroidX=true
android.enableJetifier=true
org.gradle.java.home=C\:\\Program Files\\Java\\jdk-11.0.15
-------------------------------------------------------------------
Run Code Online (Sandbox Code Playgroud)
构建.gradle
android {
compileSdkVersion flutter.compileSdkVersion
ndkVersion flutter.ndkVersion
compileOptions {
sourceCompatibility 11
targetCompatibility 11
}
kotlinOptions {
jvmTarget = '11'
useIR = true
}
sourceSets {
main.java.srcDirs += 'src/main/kotlin'
}
Run Code Online (Sandbox Code Playgroud)
在 flutter3.0 和 jdk11 安装之后,这些步骤对我有用
如果您使用的是 JDK 9+,则可以执行以下操作:
java {
sourceCompatibility = JavaVersion.VERSION_1_8
targetCompatibility = JavaVersion.VERSION_1_8
}
tasks.withType<JavaCompile> {
options.compilerArgs.addAll(arrayOf("--release", "8"))
}
Run Code Online (Sandbox Code Playgroud)
您还可以看到以下相关问题:
-release编译器参数添加便捷方法| 归档时间: |
|
| 查看次数: |
245616 次 |
| 最近记录: |