gpt4 book ai didi

java - Gradle 依赖项不包含在 jar 中

转载 作者:行者123 更新时间:2023-12-01 23:11:55 24 4
gpt4 key购买 nike

我对 Gradle 非常陌生,我使用它的主要原因是我需要解决编译后的 jar 的依赖关系问题。

这是我的 build.gradle 文件:

apply plugin: 'java'
apply plugin: 'eclipse'

version = '0.9'

jar {
manifest {
attributes 'Main-Class': 'wd.nlp.FileImport', 'Implementation-Title': 'WD\
NLP', 'Implementation-Version': version
}
}

repositories {
flatDir(dirs: 'lib')
}

dependencies{
compile 'mallet:mallet:2.0.7'
}

我的 Java 文件都依赖于名为 Mallet 的第三方库。这是我的文件夹结构:

 |---1.10
|-----taskArtifacts
|-build
|---classes
|-----main
|-------wd
|---------nlp
|---dependency-cache
|---libs
|---tmp
|-----jar
|-lib
|-src
|---main
|-----java
|-------wd
|---------nlp
|-----resources

我将 Mallet-2.0.7.jar 放置在顶部文件夹下的 lib 内。然后我使用 gradle build 命令并尝试运行我的类:

java -classpath build/libs/JavaClassifier-0.9.jar wd.nlp.FileImport -train ...

然后我被告知:

Exception in thread "main" java.lang.NoClassDefFoundError: cc/mallet/pipe/Pipe
at java.lang.Class.getDeclaredMethods0(Native Method)
at java.lang.Class.privateGetDeclaredMethods(Class.java:2531)

Mallet 库的路径是 cc.mallet.*...现在我不知道该怎么办...请帮忙!

最佳答案

不包含依赖项,因为您没有创建项目的发行版。在 Maven 中,它称为程序集。

如果您直接从命令行调用应用程序,则与 Gradle 无关。

无论如何,有一个 Gradle 插件可以创建发行版并添加 shell 脚本来执行您的应用程序。

因此,当您将以下行添加到 gradle 脚本时。

apply plugin: 'application'

您将获得一些创建发行版的新任务。

关于java - Gradle 依赖项不包含在 jar 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21803831/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com