【问题标题】:How can I create single executable jar in my gradle project如何在我的 gradle 项目中创建单个可执行 jar
【发布时间】:2020-06-09 15:11:37
【问题描述】:

我在我的应用程序中使用带有 jdk 8 的 gradle 6.2 版本,它在 build/libs/ 目录下构建了 2 个 jar 文件。如何在我的应用程序中创建单个可执行 jar?

我的 build.gradle,

plugins {
  id 'com.google.cloud.tools.jib' version '2.2.0'
  id 'application'
  id 'java'
}

repositories {
    mavenLocal()
    mavenCentral()
    jcenter()
}

jib.to.image = 'gcr.io/' + project.property('gcpProjectId') + '/my-application'
jib.container.creationTime = 'USE_CURRENT_TIMESTAMP'

mainClassName = "com.foo.Myapplication"

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

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

创建的 Jar 文件:

ls -ltr build/libs/
total 31184
-rw-r--r-- 1  user 15986229 Jun  9 20:22 my-application-1.0.0.jar
-rw-r--r-- 1  user 15942345 Jun  9 20:22 my-application-1.0.0-all.jar

为什么它在执行“gradle clean build”时创建-all.jar? 这里有什么问题? 请提供您对此的想法。

【问题讨论】:

  • 你能发一下吗,你尝试了什么,没有成功
  • 我需要运行“java -jar my-application-1.0.0.jar”。我不需要创建“my-application-1.0.0-all.jar”

标签: java gradle build.gradle executable-jar


【解决方案1】:

Gradle Shadow Plugin 似乎正是您所需要的。它与 Gradle 的 application 插件 as well 具有互操作性。

【讨论】:

    【解决方案2】:

    修改build.gradle后,我可以构建一个jar,如下所示,

    build.gradle,

    plugins {
      id 'com.google.cloud.tools.jib' version '2.2.0'
    }
    
    repositories {
        mavenLocal()
        mavenCentral()
        jcenter()
    }
    
    jib.to.image = 'gcr.io/' + project.property('gcpProjectId') + '/my-application'
    jib.container.creationTime = 'USE_CURRENT_TIMESTAMP'
    
    jar {
      manifest { 
        attributes 'Main-Class': 'com.foo.Myapplication'
      }  
    
      from {
        configurations.runtimeClasspath.collect { it.isDirectory() ? it : zipTree(it) }
      }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-07-24
      • 1970-01-01
      • 1970-01-01
      • 2014-05-09
      • 1970-01-01
      • 2018-12-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多