如何从 gradle 创建一个包含 .java 字段(源代码)的 JAR 文件
How to create a JAR file from gradle that contains the .java fields (source code) as well
我正在使用 gradle 构建一些超级 jar 文件,这个 jar 文件有依赖关系,我用这个 guide 创建我可以 运行
我的任务是这样的,顺便说一句,我正在使用 kotlin
tasks.register<Jar>("uberJar") {
archiveClassifier.set("uber")
from(sourceSets.main.get().output)
duplicatesStrategy = DuplicatesStrategy.EXCLUDE;
dependsOn(configurations.runtimeClasspath)
from({
configurations.runtimeClasspath.get().filter { it.name.endsWith("jar") }.map { zipTree(it) }
}})
我可以向此任务添加什么以添加我的 .java 文件。
我也不太了解这里发生的事情,比如 SourceSets 到底是什么?
尝试将此添加到您的 build.gradle.kts
中,看看是否有效:
tasks.named<ProcessResources>("processResources") {
from("src/main/java")
}
当您的 uber-JAR 构建时,它应该包含源文件。虽然这也会将源文件添加到任何 JAR。如果这不是您想要的,那么您将需要在 uber-JAR 设置中配置类似的东西。
我正在使用 gradle 构建一些超级 jar 文件,这个 jar 文件有依赖关系,我用这个 guide 创建我可以 运行
我的任务是这样的,顺便说一句,我正在使用 kotlin
tasks.register<Jar>("uberJar") {
archiveClassifier.set("uber")
from(sourceSets.main.get().output)
duplicatesStrategy = DuplicatesStrategy.EXCLUDE;
dependsOn(configurations.runtimeClasspath)
from({
configurations.runtimeClasspath.get().filter { it.name.endsWith("jar") }.map { zipTree(it) }
}})
我可以向此任务添加什么以添加我的 .java 文件。
我也不太了解这里发生的事情,比如 SourceSets 到底是什么?
尝试将此添加到您的 build.gradle.kts
中,看看是否有效:
tasks.named<ProcessResources>("processResources") {
from("src/main/java")
}
当您的 uber-JAR 构建时,它应该包含源文件。虽然这也会将源文件添加到任何 JAR。如果这不是您想要的,那么您将需要在 uber-JAR 设置中配置类似的东西。