为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

千巷猫影 2019-08-02 14:08:42
使用Gradle构建具有依赖关系的jar我有一个多项目构建,我在一个子项目中设置了一个任务来构建一个胖罐。我创建的任务类似于食谱中描述的任务。jar {   from configurations.compile.collect { it.isDirectory() ? it : zipTree(it) }   manifest { attributes 'Main-Class': 'com.benmccann.gradle.test.WebServer' }}运行它会导致以下错误:原因:您无法更改未处于未解决状态的配置!我不确定这个错误意味着什么。我还在Gradle JIRA上报告了这个问题,以防它出现问题。
查看完整描述

3 回答

?
蛊毒传说

TA贡献1895条经验 获得超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 {


查看完整回答
反对 回复 2019-08-02
?
繁星点点滴滴

TA贡献1803条经验 获得超3个赞

如果您希望jar任务正常运行并且有额外的fatJar任务,请使用以下命令:

task fatJar(type: Jar) {
    classifier = 'all'
    from { configurations.compile.collect { it.isDirectory() ? it : zipTree(it) } }
    with jar}

重要的是with jar。没有它,这个项目的类不包括在内。


查看完整回答
反对 回复 2019-08-02
  • 3 回答
  • 0 关注
  • 528 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信