gpt4 book ai didi

java - Gradle fatJar/uberJar 导致无法找到或加载主类

转载 作者:太空宇宙 更新时间:2023-11-04 11:35:22 24 4
gpt4 key购买 nike

我遇到了一个问题,当尝试运行 jar 时,gradle fatJar/uberJar 导致以下异常:

Error: Could not find or load main class com.domhauton.membrane.Main

简单的 jar 任务,无需

from { configurations.compile.collect { it.isDirectory() ? it : zipTree(it) } }
with jar

工作没有任何问题(直到它开始需要依赖项)。

我认为这与我的依赖项之一更改类路径有关,但我不确定为什么会发生这种情况。

build.gradle的相关部分

project.version = '1.0.0-alpha.2'
project.group = 'com.domhauton.membrane'

jar {
baseName = 'membrane-daemon-simple'
version = project.version
manifest {
attributes 'Implementation-Title': 'Membrane Daemon',
'Implementation-Version': project.version,
'Main-Class': project.group + '.Main'
}
}

//create a single Jar with all dependencies
task fatJar(type: Jar) {
manifest {
attributes 'Implementation-Title': 'Membrane Daemon',
'Implementation-Version': project.version,
'Main-Class': project.group + '.Main'
}
baseName = 'membrane-daemon'
version = project.version
from { configurations.compile.collect { it.isDirectory() ? it : zipTree(it) } }
with jar
}

Gradle 构建文件位于此处(包含其余代码):

https://github.com/domhauton/membraned/blob/master/build.gradle

META-INF 文件夹中充满了其他依赖项的文件,因此我不确定从哪里开始查找冲突。

最佳答案

使用 Shadowjar 再次运行该问题,结果完美。

相关代码:

buildscript {
repositories {
jcenter()
}
dependencies {
classpath group: 'com.github.jengelman.gradle.plugins', name: 'shadow', version: '1.2.4'
}
}

apply plugin: 'com.github.johnrengelman.shadow'

project.version = '1.0.0-alpha.2'
project.group = 'com.domhauton.membrane'

jar {
baseName = 'membrane-daemon'
version = project.version
manifest {
attributes 'Implementation-Title': 'Membrane Daemon',
'Implementation-Version': project.version,
'Main-Class': project.group + '.Main'
}
}

可以在此处的上下文中看到:https://github.com/domhauton/membraned/blob/4d28ea451acc5bf52724a0cc5c94823659236287/build.gradle

关于java - Gradle fatJar/uberJar 导致无法找到或加载主类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43357815/

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