5

Sto provando a creare più file di script di avvio tramite gradle. Ma in qualche modo un particolare file di script di avvio viene duplicato.Gradle crea script di avvio duplicati nella directory 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') 

nella directory bin posso vedere,

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

    Cosa mi manca qui? Come risolvere questo?

Grazie per l'aiuto.

+0

sono differenze tra i duplicati? E ... Non c'è nessun altro compito che prepara anche gli script di 'A'? – Opal

+0

@opal Sì, gli script sono gli stessi. E non ho altri compiti per lo stesso. – SRJ

risposta

3

Ho risolto questo problema. In realtà è stato un errore dalla mia parte e grazie a @Opal. In qualche modo ho dimenticato di cancellare la riga 'mainClassName = "com.main.A"' dall'intestazione.

Anche io ci devo aggiungere

distZip { 
    duplicatesStrategy = 'exclude' 
}