![](/img/trans.png)
[英]How to publish a fat JAR to JitPack using shadowJar gradle plugin and not maven publish
[英]How to create a jar file with gradle shadowJar that works on java 11
我假設您是在命令行上構建而不是通過 IntelliJ。 否則,我不知道出了什么問題。 但即使你不是,你仍然應該配置 Java 兼容性,讓你的構建更加獨立於本地環境。
Gradle 默認使用與運行 Gradle 相同的 JDK 構建。 您可以在命令行上通過gradlew --version
驗證哪個版本。 通常你可以使用環境變量JAVA_HOME
來設置它。
為了確保您的構建與 Java 11 兼容,無論您使用什么版本運行 Gradle,您都有一些選擇。
首先,您可以指定一個工具鏈。 如果您還沒有使用 JDK,這將使 Gradle 自動下載兼容版本的 JDK。 僅自 Gradle 6.7 起可用。
// Groovy DSL. Gradle 6.7+
java {
toolchain {
languageVersion = JavaLanguageVersion.of(11)
}
}
您還可以指定發布標志。 這將指示當前的 JDK,即使您使用 Java 15 運行,以使構建與早期版本兼容。 僅從 Gradle 版本 6.6 起可用。
// Groovy DSL. Gradle 6.6+
compileJava {
options.release = 11
}
最后,如果您使用的是舊版本的 Gradle,您可以指定源和目標兼容性。 這不如以前的選項好,因為它不能確保您僅使用 Java 11 兼容 API - 只有字節碼將與 Java 11 兼容。
// Groovy DSL. Any version of Gradle (but not as safe)
compileJava {
sourceCompatibility = 11
targetCompatibility = 11
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.