Автор оригинала: 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 }
Рекомендации
Оригинал: “https://mkyong.com/gradle/gradle-multiple-start-script-examples/”