Java gradle中的依赖项不链接JAR
我有两个项目的梯度设置。布局:Java gradle中的依赖项不链接JAR,java,gradle,Java,Gradle,我有两个项目的梯度设置。布局: build.gradle libtestapp/ >src/ >main/ >java/ >testapp/ >Test.java settings.gradle testapp-gui/ >src/ >main/ >java/ >testapp/ >TestGui.java Proj
build.gradle
libtestapp/
>src/
>main/
>java/
>testapp/
>Test.java
settings.gradle
testapp-gui/
>src/
>main/
>java/
>testapp/
>TestGui.java
Project testapp gui使用libtestapp中的函数。
项目testapp gui在运行gradle:testapp gui:build时编译。
但是在运行jar时,Java抱怨缺少类测试
build.gradle:
subprojects {
apply plugin: 'java'
}
project(':testapp-gui') {
dependencies {
compile project(':libtestapp')
}
jar {
manifest {
attributes 'Main-Class': 'testapp.TestGui'
}
}
}
settings.gradle:
包括“libtestapp”、“testapp gui”
Test.java:
package testapp;
public class Test {
public static void call() {
System.out.println("Hi, Im in libtestapp.");
}
}
TestGui.java:
package testapp;
import testapp.Test;
public class TestGui {
public static void main(String[] args) {
Test.call();
}
}
Java错误:
Exception in thread "main" java.lang.NoClassDefFoundError: testapp/Test
at testapp.TestGui.main(TestGui.java:8)
Caused by: java.lang.ClassNotFoundException: testapp.Test
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 1 more
除非您是从IntelliJ或其他IDE中执行应用程序,否则在使用命令行时,您需要使用“-classpth”或“-cp”开关显式包含依赖项:
你是如何运行这个程序的?是否包括类路径?
java -cp .;libs\*.jar your.package.MainClass