gradle任务创建fat可运行jar

xhv8bpkk  于 2021-07-06  发布在  Java
关注(0)|答案(1)|浏览(376)

我有一个带有main类的java应用程序,它与其他几个库jar有依赖关系。我需要在gradle中创建一个可运行的jar,将所有相关库复制到jar中。gradle插件“application”或“java”不提供这一点。我使用的是最新的gradle版本6.7

6ojccjat

6ojccjat1#

我可以通过创建一个任务来实现这一点,该任务执行以下操作
使用主类属性更新清单文件
将所有编译时依赖项复制到jar任务

plugins {
  id 'application'
}    
repositories {
  mavenCentral()
  //jcenter()
}    
dependencies {
  compile group: 'org.json', name: 'json', version: '20200518'
  testImplementation 'junit:junit:4.13'
  implementation 'com.google.guava:guava:29.0-jre'
 }    
 task fatJar(type: Jar) {

  manifest {
      attributes 'Main-Class': 'com.example.gradle.App'
  }
  from {
      configurations.compile.collect { it.isDirectory() ? it : zipTree(it) }
  } with jar
}

更多的细节可以在本文中阅读,这是一个带有gradle的简单java项目

相关问题