以下问题: 我的目标是创建一个由两个eclipse项目组成的Java App (我正在使用日食氧气),然后使用gradle和 最后执行.jar文件。 第一个名为MPF的项目是独立的,提供了一些功能。 这是build.gradle文件的内容:
apply plugin: 'java-library'
apply plugin: 'eclipse'
repositories {
jcenter()
}
dependencies {
testCompile 'junit:junit:4.12'
}
第二个项目,称为MP,提供了一些其他功能和主要功能 方法。这取决于MPF包。这是build.gradle文件的内容:
apply plugin: 'java'
apply plugin: 'eclipse'
repositories {
jcenter()
}
dependencies {
testCompile 'junit:junit:4.12'
compile project(':MPF')
}
jar {
manifest {
attributes 'Main-Class': 'mypackage.StartApp'
}
}
MPmain项目是根项目,包含settings.gradle文件 看起来像这样
rootProject.name = 'MPmain'
include ':MPF', ':MP'
project(':MPF').projectDir = new File(settingsDir, '../MPF')
project(':MP').projectDir = new File(settingsDir, '../MP')
和build.gradle文件
apply plugin: 'java'
apply plugin: 'eclipse'
repositories {
jcenter()
}
dependencies {
compile project(':MPF')
compile project(':MP')
}
构建成功,但是当我执行jar文件时,我得到以下内容 消息:
C:\examples\workspace_tests\MP\build\libs>java -jar MP.jar
Exception in thread "main" java.lang.NoClassDefFoundError: mypackage/StringData
at mypackage.StartApp.main(StartApp.java:7)
Caused by: java.lang.ClassNotFoundException: mypackage.StringData
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
StringData类位于MPF包中,找不到 在运行构建的jar文件时。 似乎gradle配置文件中缺少某些内容。 有人有想法吗?