Рубрики
Без рубрики

Gradle – Несколько примеров сценариев запуска

– Gradle – Несколько примеров сценариев запуска

Автор оригинала: mkyong.

Несколько build.gradle примеров, чтобы показать вам, как создать несколько сценариев запуска или исполняемое Java-приложение.

1. Один Сценарий запуска

1.1 В Gradle вы можете использовать плагин приложения для создания исполняемого Java-приложения:

apply plugin: 'application'

mainClassName = "com.mkyong.analyzer.run.threads.MainRunApp"

applicationName = 'mainApp'

applicationDefaultJvmArgs = ["-Xms512m", "-Xmx1024m"]

1.2 Создайте исполняемое Java-приложение с помощью команды gradle distZip .

$ gradle :analyzer:distZip

:compileJava UP-TO-DATE
:processResources UP-TO-DATE
:classes UP-TO-DATE
:jar UP-TO-DATE
:startScripts
:distZip

1.3 ZIP-файл будет создан в $project/build/distributions/xxx.zip

$project/build/distributions/project.zip
--- mainApp     #*nix	  -> com.mkyong.analyzer.run.threads.MainRunApp
--- mainApp.bat #windows	-> com.mkyong.analyzer.run.threads.MainRunApp

P.S Альтернативно, пробовать gradle dist Смола чтобы создать файл Tar.

2. Несколько Сценариев запуска

2.1 Чтобы создать несколько сценариев запуска, создайте пользовательский CreateStartScripts тип:

apply plugin: 'application'

mainClassName = "com.mkyong.analyzer.run.threads.MainRunApp"

applicationName = 'mainApp'

applicationDefaultJvmArgs = ["-Xms512m", "-Xmx1024m"]

task createExtraRunApp(type: CreateStartScripts) {
    mainClassName = "com.mkyong.analyzer.run.UpdateHostingExtraRunApp"
    classpath = startScripts.classpath
    outputDir = startScripts.outputDir
    applicationName = 'hostingExtraApp'
    defaultJvmOpts = ["-Xms1024m", "-Xmx2048m"]
}

applicationDistribution.into("bin") {
    duplicatesStrategy= DuplicatesStrategy.EXCLUDE
    from(createExtraRunApp)
    fileMode = 0755
}

2.2 Этот скрипт создаст два исполняемых Java-приложения:

$project/build/distributions/project.zip
---mainApp    			-> com.mkyong.analyzer.run.threads.MainRunApp	 
---mainApp.bat			-> com.mkyong.analyzer.run.threads.MainRunApp
---hostingExtraApp		-> com.mkyong.analyzer.run.UpdateHostingExtraRunApp
---hostingExtraApp.bat	-> com.mkyong.analyzer.run.UpdateHostingExtraRunApp

3. Сценарий Многократного Запуска – Снова

3.1 Этот build.gradle используется в моем проекте, он создает три исполняемых Java-приложения:

apply plugin: 'application'
mainClassName = "com.hostingcompass.analyzer.run.threads.HydraRunApp"
applicationName = 'hydra'

applicationDefaultJvmArgs = ["-Dlogback.configurationFile=MY_APP_HOME/logback-hydra.xml",
                             "-Dconfig=MY_APP_HOME/config.properties", 
							"-Djava.net.preferIPv4Stack=true", "-Dapp.home=MY_APP_HOME/", "-Xms512m", "-Xmx1024m"]

startScripts {
    doLast {
        unixScript.text = unixScript.text.replace('MY_APP_HOME', '\$APP_HOME')
        windowsScript.text = windowsScript.text.replace('MY_APP_HOME', '%~dp0..')
    }
}

task updateHostingExtraRunApp(type: CreateStartScripts) {
    mainClassName = "com.hostingcompass.analyzer.run.UpdateHostingExtraRunApp"
    classpath = startScripts.classpath
    outputDir = startScripts.outputDir
    applicationName = 'hostingExtra'
    defaultJvmOpts = ["-Dlogback.configurationFile=MY_APP_HOME/logback-hosting-extra.xml",
                      "-Dconfig=MY_APP_HOME/config.properties", "-Dapp.home=MY_APP_HOME/", "-Xms512m", "-Xmx1024m"]

    updateHostingExtraRunApp {
        doLast {
            unixScript.text = unixScript.text.replace('MY_APP_HOME', '\$APP_HOME')
            windowsScript.text = windowsScript.text.replace('MY_APP_HOME', '%~dp0..')
        }
    }
}

task updateWhoisExtraRunApp(type: CreateStartScripts) {
    mainClassName = "com.hostingcompass.analyzer.run.UpdateWhoisExtraRunApp"
    classpath = startScripts.classpath
    outputDir = startScripts.outputDir
    applicationName = 'whoisExtra'
    defaultJvmOpts = ["-Dlogback.configurationFile=MY_APP_HOME/logback-whois-extra.xml",
                      "-Dconfig=MY_APP_HOME/config.properties", "-Dapp.home=MY_APP_HOME/", "-Xms512m", "-Xmx1024m"]

    updateWhoisExtraRunApp {
        doLast {
            unixScript.text = unixScript.text.replace('MY_APP_HOME', '\$APP_HOME')
            windowsScript.text = windowsScript.text.replace('MY_APP_HOME', '%~dp0..')
        }
    }
}

applicationDistribution.into("bin") {
    duplicatesStrategy= DuplicatesStrategy.EXCLUDE
    from(updateHostingExtraRunApp)
    from(updateWhoisExtraRunApp)
    fileMode = 0755
}

distZip {
    archiveName 'analyzer.zip'
}

3.2 Результат

$project/build/distributions/analyzer.zip
---hydra
---hydra.bat 
---hostingExtra
---hostingExtra.bat
---whoisExtra
---whoisExtra.bat
applicationDistribution.into("bin") {
    duplicatesStrategy= DuplicatesStrategy.EXCLUDE
    from(updateHostingExtraRunApp)
    from(updateWhoisExtraRunApp)
    fileMode = 0755
}

Рекомендации

  1. Gradle – Плагин Приложения
  2. Плагин приложения Gradle – APP_HOME

Оригинал: “https://mkyong.com/gradle/gradle-multiple-start-script-examples/”