Gradle zip任务既不失败也不起作用

Gradle zip任务既不失败也不起作用,gradle,Gradle,我正在尝试创建一个自定义Gradle 4.3.1任务,该任务将: 运行/gradlewbuild,生成build/libs/myapp.jar工件;然后 创建一个myapp-1.0.zipzip文件,其内容包括: build/libs/myapp.jar;及 /AppGuide.md;及 /app config.json 以下是我最好的尝试: task zipMeUp(type: Zip) { String zipName = 'myapp-1.0.zip' doFirst {

我正在尝试创建一个自定义Gradle 4.3.1任务,该任务将:

  • 运行
    /gradlewbuild
    ,生成
    build/libs/myapp.jar
    工件;然后
  • 创建一个
    myapp-1.0.zip
    zip文件,其内容包括:
    • build/libs/myapp.jar
      ;及
    • /AppGuide.md
      ;及
    • /app config.json
  • 以下是我最好的尝试:

    task zipMeUp(type: Zip) {
      String zipName = 'myapp-1.0.zip'
    
      doFirst {
        tasks.build
      }
    
      from 'build/libs/myapp.jar'
      from 'AppGuide.md'
      from 'app-config.json'
      into zipName
    }
    
    当我运行此(
    /gradlew zipMeUp
    )时,我得到以下输出:

    HarveyZ:myapp myuser$ ./gradlew zipMeUp
    
    BUILD SUCCESSFUL in 2s
    1 actionable task: 1 executed
    

    但实际上似乎什么也没有发生(目录中没有
    myapp-1.0.zip
    文件)知道修复/解决方案是什么吗?

    不要使用
    doFirst
    ,使用
    dependsOn

    task zipMeUp(type:Zip, dependsOn :[build]) {
        String zipName = 'myapp-1.0.zip'
    
        from 'build/libs/myapp.jar'
        from 'AppGuide.md'
        from 'app-config.json'
    
        version = "1.0"
        baseName = "myapp"
    }
    

    谢谢@Daniel Taub(+1)您确定
    packJar
    /
    Jar
    任务是正确的任务类型吗?这实际上是一个Spring引导应用程序,它添加了一些非常特定的Gradle功能,并且需要运行
    /gradlew build
    ,以便正确地构建它(使用嵌入式Jetty容器创建一个自包含的可执行JAR,执行许多其他魔法,等等)。你是对的,我只是不知道你使用Spring打包JAR