Gradle将重复的启动脚本创建到bin目录中

时间:2015-11-03 00:15:27

标签: java gradle build.gradle build-script gradle-release-plugin

我正在尝试通过gradle创建多个启动脚本文件。但不知何故,一个特定的启动脚本文件正在重复。

startScripts.enabled = false
run.enabled = false

def createScript(project, mainClass, name) {
  project.tasks.create(name: name, type: CreateStartScripts) {
    outputDir       = new File(project.buildDir, 'scripts')
    mainClassName   = mainClass
    applicationName = name
    classpath       = jar.outputs.files + project.configurations.runtime

     doLast {
            def windowsScriptFile = file getWindowsScript()
            def unixScriptFile    = file getUnixScript()
        windowsScriptFile.text = windowsScriptFile.text.replace('%APP_HOME%\\lib\\conf', '%APP_HOME%\\conf')
            unixScriptFile.text  = unixScriptFile.text.replace('$APP_HOME/lib/conf', '$APP_HOME/conf')
    }
  }
  project.tasks[name].dependsOn(project.jar)

  project.applicationDistribution.with {
    into("bin") {
      from(project.tasks[name])
      fileMode = 0755
    }
  }
}



// Call this for each Main class you want to expose with an app script
createScript(project, 'com.main.A', 'A')
createScript(project, 'com.main.B', 'B')
在bin目录中我可以看到

  • A.sh
  • A.sh
  • A.bat
  • A.bat
  • B.sh
  • B.bat

    我在这里缺少什么?如何解决这个问题?

感谢您的帮助。

1 个答案:

答案 0 :(得分:3)

我解决了这个问题。实际上这是我身边的错误,感谢@Opal。我不知道忘了删除' mainClassName =" com.main.A"'标题行。

我还要添加

distZip {
    duplicatesStrategy = 'exclude'
}