Gradle - FatJar - 无法找到或加载主类

2024-04-01

我知道这个问题被问了很多并且有很多答案,但我仍然明白,但我不明白为什么......

我正在尝试生成一个.jar来自与 gradle 具有依赖关系的项目。

我有课src/main/java/Launcher.java,其中我有我的main method.

有我的build.gradle

plugins {
    id 'java'
    id 'application'
}

version '1.0-SNAPSHOT'
sourceCompatibility = 1.8
mainClassName = 'Launcher'

repositories {
    mavenCentral()
}

dependencies {
    compile 'commons-io:commons-io:2.1'
    compile 'io.vertx:vertx-core:3.4.0'
    compile 'io.vertx:vertx-web:3.4.0'
    compile 'com.google.code.gson:gson:1.7.2'
    compile "com.auth0:java-jwt:3.1.0"
    compile 'org.mongodb:mongo-java-driver:3.4.1'
    compile 'com.google.guava:guava:24.1-jre'
    compile 'commons-io:commons-io:2.6'
}

jar {
    manifest {
        attributes "Main-Class": mainClassName
    }

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

I use $>gradle assemble生成我的罐子 然后$>java -jar path/to/my/.jar我收到错误“无法找到或加载主类启动器”...

我不明白为什么当我查看 .jar 时,我有 Launcher 类,而在 META-INF 中我有我的清单

很抱歉在 2018 年仍然问这个问题,但我正在失去理智试图找出问题所在。我希望有人能给出答案!


我在本地重现了您的问题。

只需添加exclude 'META-INF/*.RSA', 'META-INF/*.SF', 'META-INF/*.DSA'到 jar 任务。

这将排除干扰依赖项的签名。

Example:

jar {
    manifest {
        attributes "Main-Class": mainClassName
    }

    from {
        configurations.compile.collect { it.isDirectory() ? it : zipTree(it) }
    }
    exclude 'META-INF/*.RSA'
    exclude 'META-INF/*.SF'
    exclude 'META-INF/*.DSA'
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Gradle - FatJar - 无法找到或加载主类 的相关文章

随机推荐

  • 如何通过 url 从服务器下载音频文件

    如何通过 url 从服务器下载音频文件并将其保存到 SD 卡 我正在使用下面的代码 public void uploadPithyFromServer String imageURL String fileName try URL url
  • 无法在 Azure DevOps CD 上部署 DacPac

    我正在建设DacPac使用 Visual Studio 从数据库项目中获取文件 另外 在调试Drop tab in Advanced Build Settings 我启用了以下选项 不要丢弃凭据 不要删除数据库角色 不要删除数据库范围的凭据
  • 向 UIScrollView 添加垂直两指滑动手势

    根据如何为所有屏幕的 iPhone 应用程序添加垂直滑动手势 https stackoverflow com questions 4640000 how to add a vertical swipe gesture to iphone a
  • Predis 给出“从服务器读取行时出错”

    我在用predis https github com nrk predis 它已订阅频道并正在收听 它抛出以下错误 如下 并在 60 秒后死亡 这肯定不是我的网络服务器错误或其超时 有一个类似的问题正在讨论here https github
  • 为像素分配负值

    使用某些标准 图像中有一些我不感兴趣的像素 所以 我想忽略它们 我只是想问一下我所遵循的方法是否可以接受 我已为这些像素分配了负值 这样可以接受吗 当像素具有负值时意味着什么 它会在图像上有一些表现吗 如果您的数据类型允许 例如有符号整数
  • 如何判断无扩展名图像是 png 还是 jpeg

    不久前 我保存了一些由网络服务生成的图像 因此文件名例如 ysauyft87ggsa67fgeg w 1600 我可以打开并操作这些图像 好的 我只想知道它们是什么编码 几乎可以肯定是 png 或 jpeg 我已经在 OSX 中尝试过 获取
  • Chrome 在来自第 3 方 IFRAME 时不会保留我的 _SESSION 变量,但在直接访问时可以完美运行

    直到几周后 我所有的网站都运行良好 我编写代码并在 CodeCanyon 上出售 但最近 今天 我注意到我无法再登录我在那里出售的 PHP 小代码片段 如果我直接在我的域上工作 就像在 URL 栏中输入链接一样 那么在任何浏览器中一切都会完
  • 在Python中使用numpy和scipy在matplotlib中制作分箱箱线图

    我有一个包含值对的二维数组 我想通过 x 值的不同箱来绘制 y 值的箱线图 IE 如果数组是 my array array 1 40 5 4 5 60 然后我想对 my array 0 进行分箱 然后对于每个分箱 生成属于每个框中的相应 m
  • 语法错误:WITH 在此位置输入无效

    所以我有这个类似的请求 WITH customers in usa AS SELECT customerName state FROM customers WHERE country USA SELECT customerName FROM
  • 查找字符串中重复的单词并计算重复次数

    我需要找到字符串上重复的单词 然后计算它们重复的次数 基本上 如果输入字符串是这样的 String s House House House Dog Dog Dog Dog 我需要创建一个不重复的新字符串列表 并将每个单词的重复次数保存在其他
  • 更改 viewpager 中当前片段的背景图像

    我在 viewpager 中有 4 个片段 FragmentStatePagerAdapter 在我的 viewpager 所在的活动中 FragmentStatePagerAdapter 的 newInstance 方法将布局 id 作为
  • Quarkus & Microprofile:是否有更好的方法将 application.properties 中的属性使用到 @ClientHeaderParam 中?

    我正在尝试构建一个简单的应用程序来调用 APIquarkus rest client 我必须注入一个 API 密钥作为标头 该标头对于 API 的所有资源都是相同的 所以我想把这个API Key的值 这取决于环境 dev qa prod 在
  • 将焦点设置回文本框

    在用户移动到用户表单上的下一个字段之前 我需要检查文本框是否为空 空或空白 这是检查文本框是否为空 null 空白的代码 我的问题是它不会将焦点返回到文本框 而是移动到用户表单中的下一个字段 Private Sub txtTDYLocati
  • 3 层模式与 MVVM 的比较

    我不知道MVVM 我总是遵循 3 层模式 其中一层是 UI 另一层是业务层 最后一层是数据访问层 在这一层中 我们将请求从 UI 发送到业务层 业务层与数据访问层进行交互 在这种模式下 一切都很顺利 那么我的问题是为什么要学习 MVVM M
  • 取消引用后 *p++ 会递增吗? [复制]

    这个问题在这里已经有答案了 我不太确定这里的顺序是什么 是吗 1 增加指针p的值后取消引用它 2 在增加指针 p 的值之前先取消引用它 增量和取消引用之间没有顺序 但是 那 运算符应用于结果p 这是原始值p在增量之前
  • 仅在平板电脑上支持 Android N+ 分屏

    有没有办法仅在足够大的屏幕上配置对活动的多窗口支持 例如药片 https developer android com preview features multi window html configuring https develope
  • SQL Server INNER JOIN 具有多个关系的多个内连接

    我有以下查询 它工作得很好 但我需要从另一个名为 FB 的表中提取 BUserName 该表具有与 FU 表中的 UserID 相关的 UserID 字段 这可能吗 SELECT TOP 100 FF XID FF YID FF Title
  • MvcSiteMap 生成菜单而不弄乱面包屑

    我正在配置我的 asp net mvc 5 应用程序以使用 MvcSiteMap 库 到目前为止 我可以成功配置面包屑 然而 菜单模板比面包屑要复杂得多 我有小胡子版本的菜单 我没有显示 ul 标签
  • .h 文件中应包含哪些内容?

    将代码分成多个文件时 究竟应该将哪些内容放入 h文件以及应该放入的内容 cpp file 头文件 h 旨在提供多个文件中所需的信息 类声明 函数原型和枚举等内容通常位于头文件中 一句话 定义 代码文件 cpp 旨在提供只需要在一个文件中了解
  • Gradle - FatJar - 无法找到或加载主类

    我知道这个问题被问了很多并且有很多答案 但我仍然明白 但我不明白为什么 我正在尝试生成一个 jar来自与 gradle 具有依赖关系的项目 我有课src main java Launcher java 其中我有我的main method 有