我有一个带有main类的java应用程序,它与其他几个库jar有依赖关系。我需要在gradle中创建一个可运行的jar,将所有相关库复制到jar中。gradle插件“application”或“java”不提供这一点。我使用的是最新的gradle版本6.7
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项目
1条答案
按热度按时间6ojccjat1#
我可以通过创建一个任务来实现这一点,该任务执行以下操作
使用主类属性更新清单文件
将所有编译时依赖项复制到jar任务
更多的细节可以在本文中阅读,这是一个带有gradle的简单java项目