使用Gradle构建具有依赖关系的jar

使用Gradle构建具有依赖关系的jar

我有一个多项目构建,我在一个子项目中设置了一个任务来构建一个胖罐。我创建的任务类似于食谱中描述的任务。

jar {
  from configurations.compile.collect { it.isDirectory() ? it : zipTree(it) }
  manifest { attributes 'Main-Class': 'com.benmccann.gradle.test.WebServer' }}

运行它会导致以下错误:

原因:您无法更改未处于未解决状态的配置!

我不确定这个错误意味着什么。我还在Gradle JIRA上报告了这个问题,以防它出现问题


千巷猫影
浏览 529回答 3
3回答

蛊毒传说

我在JIRA中针对Gradle 发布了一个解决方案:// Include dependent libraries in archive. mainClassName = "com.company.application.Main"jar {   manifest {      attributes "Main-Class": "$mainClassName"   }     from {     configurations.compile.collect { it.isDirectory() ? it : zipTree(it) }   }}请注意,mainClassName必须出现在BEFORE之前jar {。

繁星点点滴滴

如果您希望jar任务正常运行并且有额外的fatJar任务,请使用以下命令:task fatJar(type: Jar) {     classifier = 'all'     from { configurations.compile.collect { it.isDirectory() ? it : zipTree(it) } }     with jar}重要的是with jar。没有它,这个项目的类不包括在内。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java