gradle 2.1의 Java 프로젝트에 소스 세트를 어떻게 추가합니까?gradle 2.1의 Java 프로젝트에 소스 세트를 어떻게 추가합니까?
Java Plugin과 SourceSetOutput 및 기타 몇 가지 SO 스레드를 읽었으며 작동 방식을 파악하는 데 여전히 어려움을 겪고 있습니다.
나는 내 이해를 테스트하기 위해 간단한 빌드 스크립트를 만들었습니다. 사용자 가이드의 23.7.2 절, 23.5 절을 기반으로 다음과 같이 작업하여 sourceSet을 만들 수 있습니다.
sourceSets {
generated
}
섹션 23.4. 프로젝트 레이아웃은 내 원본 세트가 그라데이션 규칙을 따르기 때문에이 모든 작업이 필요하다는 것을 암시하는 것처럼 보입니다. 소스 집합에 포함될 코드는 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 당신은 다음과 같은 방법으로 build.gradle
을 수정해야
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);
}
}
감사! 이것은'gradle build'에서 작동합니다, 그러나'gradle run'을 시도하면'NoClassDefFoundError'가 생깁니다. –
흠 .. 정말로. 나는 또한'run'으로 테스트했지만 불행히도'clean'이 없다면 테스트했습니다. 보세요. – Opal
답변을 편집했습니다. 지금 일해야한다. – Opal