여기에 Gradle Noob이 있습니다. 내가 종속성을 더 잘 이해하고 Gradle을 사용하여 Java에서 다른 파일을 가져 오는 방법을 배우려는 아주 간단한 프로젝트가 있습니다. 다음과 같은 세 개의 파일로Gradle & Java : 종속 파일로 파일 추가
$ ls
build.gradle dependencies src
$ ls dependencies/
Hello.java Hello.jar
$ ls src/
Temp.java
build.gradle :
apply plugin: 'java'
dependencies {
compile fileTree(dir: 'dependencies', include:'**/*.jar')
}
sourceSets {
main {
java {
srcDirs = ['src']
}
}
}
task compile(type: JavaCompile) {
source = file('src')
}
Hello.java
public class Hello{
int l = 1;
public Hello(){
System.out.println(l);
}
public static void main(String[] args){
Hello h = new Hello();
}
}
Temp.java : 나는 다음과 같은 파일 구조를 가지고
public class Temp {
public static void main(String[] args0){
Hello h = new Hello();
}
}
명령 행에서
gradle jar
을 실행하는 경우 6,
은, Gradle을에 대한 설명서를 기반으로
이$ java -classpath build/libs/testproject.jar Temp
Exception in thread "main" java.lang.NoClassDefFoundError: Hello
at Temp.main(Temp.java:5)
Caused by: java.lang.ClassNotFoundException: Hello
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
... 1 more
, 내가 무엇을 볼 수없는 것 ... 내 항아리를 실행하려고 할 때 Gradle을하지만, 성공적으로 빌드 것으로 보인다 나는 잘못하고있다. build.gradle에서 내 종속성 사양은 무엇이며, 왜 Temp.java가 Hello.java를 볼 수 있도록 허용하지 않는 것입니까? 이 문제를 어떻게 해결할 수 있습니까?
도움을 미리 감사드립니다.