Java Gradle和Maven编译了我的项目,但我没有发现任何错误
我正在尝试编译我的项目,它使用Gradle和Maven。该项目使用本地maven存储库上的另一个库。Gradle和Maven中引用了该库: 格拉德尔:Java Gradle和Maven编译了我的项目,但我没有发现任何错误,java,maven,intellij-idea,gradle,Java,Maven,Intellij Idea,Gradle,我正在尝试编译我的项目,它使用Gradle和Maven。该项目使用本地maven存储库上的另一个库。Gradle和Maven中引用了该库: 格拉德尔: dependencies{ compile 'cf.charly1811.java.utils:MimeType:1.0' } 马文: cf.charly1811.java.utils 模版 1 当我尝试使用mvncleanpackage或gradlecleanjar编译项目时,它成功了。调用MimeType类时会出现错误:
dependencies{
compile 'cf.charly1811.java.utils:MimeType:1.0'
}
马文:
cf.charly1811.java.utils
模版
1
当我尝试使用mvncleanpackage
或gradlecleanjar
编译项目时,它成功了。调用MimeType类时会出现错误:
Exception in thread "Thread-4" java.lang.NoClassDefFoundError: cf/charly1811/java/utils/MimeType at cf.charly1811.java.web.RequestHandlerThread.process(RequestHandlerThread.java:120)
at cf.charly1811.java.web.RequestHandlerThread.handleRequest(RequestHandlerThread.java:85)
at cf.charly1811.java.web.RequestHandlerThread.run(RequestHandlerThread.java:64)
Caused by: java.lang.ClassNotFoundException: cf.charly1811.java.utils.MimeType
at java.net.URLClassLoader$1.run(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
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)
... 3 more
我不知道是什么导致了这个错误。。。
请帮忙
编辑:
MimeType pom.xml:
4.0.0
模版
库以轻松获取文件类型
cf.charly1811.java.utils
模版
1
Apache许可证,版本2.0
http://www.apache.org/licenses/LICENSE-2.0.txt
回购
业务友好的OSS许可证
HttpServer(主项目)pom.xml
4.0.0
HttpServer
用JAVA编写的简单HTTP服务器
cf.charly1811.java.web
HttpServer
1
cf.charly1811.java.utils
模版
1
私用
http://choosealicense.com/licenses/no-license/
此软件仅供私人使用
org.apache.maven.plugins
maven jar插件
真的
cf.charly1811.java.Main
编辑
我忘了澄清一件事:
我使用IntelliJ的想法。当我尝试使用“Run”编译项目时,它会编译所有内容,但我没有得到这个错误。只有在我使用Gradle或Maven编译项目时才会发生这种情况,否则会出现问题,请删除清单文件并进行maven清洁安装。非常确定该包没有导入到您的清单中。如果此问题仍然存在,请手动导入该包,并调查它为什么不能自行拉入。阅读本文后,我注意到以下几点: 默认情况下,Maven不会在JAR文件中绑定依赖项 构建时,您没有在类路径上提供它们 试图在命令行执行JAR文件 Java VM在尝试执行您的命令时找不到库类文件 代码。” 我想格拉德也是这样 现在我应该找到一种捆绑依赖项的方法 编辑 我终于找到了解决办法(格雷德尔)
应用以下插件:
apply plugin:'java'
apply plugin: 'application'
添加依赖项()
使用此命令编译项目
格雷德尔清洁拉链
如果您只想运行您的程序:
gradle clean run
编辑
如果你使用Maven。您可以使用绑定Jar文件中的依赖项请删除清单文件并执行maven clean安装。非常确定该包没有导入到您的清单中。如果此问题仍然存在,请手动导入该包,并调查它为什么不能自行拉入。我删除了清单文件,重新编译了MimeType库,并重新编译了主项目。仍然得到相同的错误。我已经手动导入了MimeTYpe库并重试,现在它可以工作了。也许问题来自MimeType pom文件?我用图书馆的pom文件和projectNo更新了这个问题。我认为这可能是一个问题,建立删除您的本地回购。从工作空间中删除项目。。。再次检查并构建它。如果问题仍然存在,那么您需要进一步调查。您是否在groovy中使用此导入,它在清单的导入中表现得很奇怪。我删除了所有Maven和Gradle文件,为MimeType重新创建pom.xml,重新编译,为HttpServer重新创建pom,添加了MimeType作为依赖项。同样的结果…尝试添加调试器加载程序卸载程序日志,并找出哪个jar是一个问题。