gpt4 book ai didi

java - 如何在 gradle 2.1 中将源集添加到 Java 项目?

转载 作者:行者123 更新时间:2023-11-30 11:13:51 24 4
gpt4 key购买 nike

如何在 gradle 2.1 中将源集添加到 Java 项目?

我已经阅读了 Java Plugin 上的文档和 SourceSetOutput和其他一些 SO 线程,我仍在努力弄清楚它是如何工作的。

我创建了一个简单的构建脚本来测试我的理解。根据用户指南第 23.7.2 节示例 23.5,看来我可以通过以下方式创建源集:

sourceSets {
generated
}

在第 23.4 节中。项目布局似乎暗示这就是我需要做的,因为我的源集遵循 gradle 约定。要包含在源集中的代码位于 src/generated/java/packagename 中。并将自动添加到类路径中。基于我从使用生成的源集中定义的代码的代码中得到的符号未找到错误,我认为这是不正确的,需要做其他事情。我需要做什么?

这是我的设置:

build.gradle

apply plugin: 'java'
apply plugin: 'application'

mainClassName = "tester.Test"

sourceSets {
generated
}

文件结构

tester/
├── build
│   ├── classes
│   │   └── main
│   ├── dependency-cache
│   └── tmp
│   └── compileJava
├── build.gradle
└── src
├── generated
│   └── java
│   └── tester
│   └── Boom.java
└── main
└── java
└── tester
└── Test.java

Boom.java

package tester;

class Boom {
String sound;

public Boom (String s){
sound = s;
}
}

测试.java

package tester;

class Test {
public static void main(String[] args) {
Boom b = new Boom("KABOOM");

System.out.println("I've run");
System.out.println(b.sound);
}
}

最佳答案

需要修改build.gradle如下:

sourceSets {
generated
main {
compileClasspath += generated.output // adds the sourceSet to the compileClassPath
runtimeClasspath += generated.output // adds the sourceSet to the runtimeClasspath
}
}

project.run.classpath += sourceSets.generated.output //add the sourceSet to project class path

请记住,添加新的源集与在类路径中设置已编译的源集是不同的。

源集下方的行是run 任务运行所必需的。

关于java - 如何在 gradle 2.1 中将源集添加到 Java 项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26221958/

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