gpt4 book ai didi

java - `gradle run` 没有 gradle

转载 作者:行者123 更新时间:2023-12-02 09:57:39 25 4
gpt4 key购买 nike

在我的 Java 项目中,我使用 gradle 进行依赖管理。我有一个主类 org.myorg.MainClass,我可以使用 gradle run 让它运行。

但是,当我使用 gradle assembly 生成 jar 时,我无法让它在没有 gradle 的情况下运行。

java -jar assembly.jar 立即结束,没有结果。

我什至补充道:

jar {
manifest {
attributes(
'Class-Path': configurations.compile.collect { it.getName() }.join(' '),
'Main-Class': 'org.myorg.MainClass'
)
}
}

这对主类文件有帮助,但没有帮助。

我也不喜欢 MainClass 在 gradle 文件的不同部分重复这一事实 - 这意味着如果 MainClass 发生更改,我将不得不在多个位置替换它。

最佳答案

您的主要问题可能是您的依赖项没有被引入到可执行 Jar 文件中,并且运行时在执行代码时无法找到它们。我只是根据您提出问题的方式进行推测。

如果我是对的,那么我认为您现在最好的选择是使用 Shadow Jar 插件 ( https://imperceptiblethoughts.com/shadow/introduction/ )

Shadow is a Gradle plugin for combining dependency classes and resources with a project's into a single output Jar. The combined Jar is often referred to a fat-jar or uber-jar. Shadow utilizes JarInputStream and JarOutputStream to efficiently process dependent libraries into the output jar without incurring the I/O overhead of expanding the jars to disk.

关于java - `gradle run` 没有 gradle,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55875390/

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