5

私はgradleを通して複数の起動スクリプトファイルを作成しようとしています。しかし、どういうわけか、ある特定の開始スクリプトファイルが何とか複製されています。binディレクトリに重複した起動スクリプトを作成することを奨励します

私が見ることができる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') 

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

    B.bat

    私はここで何が欠けていますか?これを修正するには?

ありがとうございます。

+0

を追加する必要があり、重複の間に違いはありますか?そして、 'A'スクリプトも準備する他のタスクはありませんか? – Opal

+0

@opalええ、scriprsは同じです。そして私は同じことのための他のタスクを持っていない。 – SRJ

答えて

3

私はこの問題を解決しました。実際、それは私の側からのミスであり、@ Opalのおかげです。私は何とか 'mainClassName = "com.main.A"'行をヘッダから削除するのを忘れていました。

また、私は

distZip { 
    duplicatesStrategy = 'exclude' 
}