gradle:使用不同的jar配置运行两次InstallDist任务

时间:2019-01-12 11:52:27

标签: java gradle

出于包装方面的原因,作为构建的一部分,我需要运行两次installDist任务,以生成两个发行版。在每个容器中,主jar将包含不同的资源文件夹。

示例

假设我要生成:

  • 首先分发,其中主jar排除了文件f1f2
  • 然后是一个发行版,其中主jar仅排除文件f1

我尝试了以下操作但未成功:

tasks = ['installDist', ...., 'osXjar', 'installDist', ... ]

    jar {
           archiveName = xxx
           exclude "f1"
           exclude "f2"
        }


task osXjar(type: Jar) {
           archiveName = xxx
           exclude "f1"
        }

它产生相同结果的两倍,我认为installDist仅依赖jar,而忽略osXjar

如果仅尝试运行自定义jar任务osXjar,则生成的jar将被破坏并且尺寸小得可笑,而jar任务会产生正确的结果。

预先感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

因此,如果有人遇到相同问题,我会在此处发布答案。 诀窍是在自定义jar任务中包含from sourceSets.main.output。 因此,以下方法将起作用:

tasks = ['installDist', ...., 'osXjar', 'installDist', ... ]

    jar {
           archiveName = xxx
           exclude "f1"
           exclude "f2"
        }


task osXjar(type: Jar) {
           archiveName = xxx
           from sourceSets.main.output
           exclude "f1"
        }