gpt4 book ai didi

java - Java构建时如何控制资源处理?

转载 作者:行者123 更新时间:2023-12-01 09:48:52 25 4
gpt4 key购买 nike

谁帮助将源集中的 resources 子目录中的任何文件复制到构建目录的 resources 文件夹中?

我在 IntelliJ 中创建了简单的 Gradle 项目,并配置了名为 demo 的附加源根目录:

enter image description here

build.gradle如下:

group 'net.inthemoon.tests'
version '1.0-SNAPSHOT'

apply plugin: 'java'

sourceCompatibility = 1.5

repositories {
mavenCentral()
}

dependencies {
testCompile group: 'junit', name: 'junit', version: '4.11'
}

sourceSets {
demo
}

然后我将简单的文本文件放入两组的 rerources 目录中。

之后我注意到,仅当我从 IntelliJ 运行构建时才会出现该突出显示的文件(来自 demo 源集的文件)。如果我从 Gradle 运行 build goal,则只会出现第二个文件(来自 main 源集)。

如何配置 gradle 来处理所有源集中的所有文件?

最佳答案

我不使用intellij,所以我无法告诉你为什么它会自动执行demoClasses来编译和复制演示源集,但你可以执行它并会看到资源,就像intellij会做的那样。

只需添加

build.dependsOn demoClasses

它会在每次构建时执行此操作。要将它们添加到您的 jar 中,您必须将其添加为源,例如

jar {
from sourceSets.demo.output
}

对于依赖于 main 的源集,只需添加它的输出

sourceSets {
demo {
compileClasspath += sourceSets.main.output
runtimeClasspath += sourceSets.main.output
}
}

如果您还需要用于演示编译的编译/运行时库,只需这样做

sourceSets {
demo {
compileClasspath += sourceSets.main.runtimeClasspath
runtimeClasspath += sourceSets.main.runtimeClasspath
}
}

关于java - Java构建时如何控制资源处理?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37748388/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com