5

Próbuję utworzyć wiele skryptów startowych poprzez gradle. Ale jakoś jeden konkretny plik skryptu startowego jest duplikowany.Tworzenie kopii zduplikowanych skryptów startowych w katalogu bin

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') 

w katalogu bin widzę,

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

    Czego mi tu brakuje? Jak to naprawić?

Dziękuję za pomoc.

+0

Czy są jakieś różnice między duplikatów? I .. Czy nie ma żadnego innego zadania przygotowującego skrypty "A"? – Opal

+0

@opal Tak, skrypty są takie same. I nie mam innego zadania za to samo. – SRJ

Odpowiedz

3

Rozwiązałem ten problem. Właściwie to był błąd z mojej strony i dzięki @Opal. Jakoś zapomniałem usunąć linię "mainClassName =" com.main.A "z nagłówka.

Ponadto muszę dodać

distZip { 
    duplicatesStrategy = 'exclude' 
}