如何在gradle中从master jar制作jar?

问题描述 投票:0回答:1

我想通过gradle创建一个jar文件。我的 java 源代码位于文件夹中,还有一个名为 master.jar 的 jar 文件,我遵循了这篇文章 [https://stackoverflow.com/questions/67725436/simplest-gradle-project-with-local-jar-files](链接)

但是我得到的 jar 文件的大小要小得多,大约 10kb,但是我通过 netbeans 获取的 jar 的大小是 40kb,当我尝试执行 jar 文件时,它显示一个错误,无法找到类文件。

无法找到或加载主类com.robin.roh.QuickRouteJobScheduler

我认为它的编译错误,我需要更改文件中的其他内容吗?

这是我的 build.gradle 文件

apply plugin: 'java'
apply plugin: 'application'

// Define the source directory
sourceSets.main.java.srcDirs = ['src/com/robin/roh/QuickRouteJobScheduler']

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
}

jar {
    manifest {
        attributes 'Main-Class': 'com.robin.roh.QuickRouteJobScheduler'
        attributes("Class-Path": configurations.runtimeClasspath { it.getName() }.join(' '))
    }
}

Gradle 显示构建成功..但是当我运行该 jar 时,它显示在终端上找不到主类。

我想使用 libs 文件夹中的 jar 文件来创建 QuickRouteJobScheduler.jar 我可以使用 netbeans 创建它,但想在 bitbucket 上使用 gradle 进行 CICD 管道

我只是希望我的 jar 是通过使用 libs 文件夹中的 jar 来创建的,任何其他简单的方法也值得赞赏..

java gradle java-8 build.gradle bitbucket-pipelines
1个回答
0
投票

始终坚持原始文档。随着时间的推移,StackOverflow 解决方案可能会被弃用。因此,请遵循 Gradle 文档

  1. 将包含 JAR 的目录(在此示例中:libs)添加到存储库
repositories {
    mavenCentral()
    flatDir {
        dirs '/path/to/libs/directory'
    }
}
  1. 声明此 JAR 中的实际依赖项
dependencies {
   classpath group: 'my-jar-group', name: 'my-jar-module-name', version: '1.0'
}

如果您不知道组和/或版本,您可以使用简化的依赖项:

dependencies {
   implementation name: 'my-jar-1.0'
}
  1. 编译你的项目

如果您没有声明任何实际依赖项,那么您的库将被 Gradle 排除,以使生成的 JAR 尽可能小。

© www.soinside.com 2019 - 2024. All rights reserved.