Как добавить исходный набор в проект Java в Gradle 2.1?
Как добавить исходный набор в проект Java в Gradle 2.1?
Я прочитал документы по плагину Java и SourceSetOutput и нескольким другим SO-потокам, и я все еще пытаюсь выяснить, как это работает.
Я создал простой скрипт для проверки моего понимания. Основываясь на разделе 23.7.2, пример 23.5 Руководства пользователя, кажется, что я могу создать sourceSet, выполнив:
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;
}
}
Test.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);
}
}
1 ответ
Вам нужно изменить 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
задача на работу.