5

Ich versuche, mehrere Start-Skript-Dateien über Gradle zu erstellen. Aber irgendwie wird eine bestimmte Start-Skriptdatei dupliziert.Gradle erstellen doppelte Start-Skripte in bin-Verzeichnis

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

in Verzeichnis bin kann ich finden

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

    Was fehlt mir hier? Wie behebe ich das?

Vielen Dank für Ihre Hilfe.

+0

hinzufügen Gibt es Unterschiede zwischen Duplikate? Und .. Gibt es noch eine andere Aufgabe, die 'A' Skripte vorbereitet? – Opal

+0

@opal Ja, Scriptoren sind gleich. Und ich habe keine andere Aufgabe für dasselbe. – SRJ

Antwort

3

Ich löste dieses Problem. Eigentlich war es ein Fehler von meiner Seite und dank @Opal. Ich habe irgendwie vergessen, die Zeile 'mainClassName = "com.main.A' 'aus der Kopfzeile zu löschen.

Auch habe ich

distZip { 
    duplicatesStrategy = 'exclude' 
}