从单个 Gradle 构建调用打包和 运行 可执行 JAR?
Packaging and running executable JAR from single Gradle build invocation?
这是我的 Groovy 应用程序的驱动程序 class:
package org.me.myapp
class MyDriver {
static void main(String[] args) {
// The p flag was passed in and had a value of 50!
println String.format("The %s flag was passed in and had a value of %s!", args[0], args[1])
}
}
我正在尝试增强我的 Gradle 构建,以便我可以:
- Gradle 打包我的可执行 JAR;和
- 运行 我的可执行 JAR,将命令行参数传递给它的主要方法
理想情况下,我可以通过以下方式 运行 我的应用程序:
gradle run -p 50
并查看以下控制台输出:
The p flag was passed in and had a value of 50!
这是我的 build.gradle
:
apply plugin: 'groovy'
apply plugin: 'eclipse'
sourceCompatibility = '1.7'
targetCompatibility = '1.7'
repositories {
mavenCentral()
}
dependencies {
compile (
'org.codehaus.groovy:groovy-all:2.3.9',
'com.google.guava:guava:18.0',
'com.google.inject:guice:3.0'
)
}
task sourcesJar(type: Jar, dependsOn: classes) {
classifier = 'sources'
from sourceSets.main.allSource
}
task wrapper(type: Wrapper) {
gradleVersion = '1.11'
}
我需要做什么才能拥有这样的 Gradle 程序包 + 运行 我的应用程序?
要执行 run
任务,您需要应用 application
插件。您可以将以下代码段添加到您的 build.gradle
apply plugin: 'application'
mainClassName = "org.me.myapp.MyDriver"
run {
args "p"
args "50"
}
您可以将 "p"
和 "50"
替换为一些 gradle 属性 名称,并从命令行传递这些属性,如
gradle run -Pkey=p -Pvalue=50
这是我的 Groovy 应用程序的驱动程序 class:
package org.me.myapp
class MyDriver {
static void main(String[] args) {
// The p flag was passed in and had a value of 50!
println String.format("The %s flag was passed in and had a value of %s!", args[0], args[1])
}
}
我正在尝试增强我的 Gradle 构建,以便我可以:
- Gradle 打包我的可执行 JAR;和
- 运行 我的可执行 JAR,将命令行参数传递给它的主要方法
理想情况下,我可以通过以下方式 运行 我的应用程序:
gradle run -p 50
并查看以下控制台输出:
The p flag was passed in and had a value of 50!
这是我的 build.gradle
:
apply plugin: 'groovy'
apply plugin: 'eclipse'
sourceCompatibility = '1.7'
targetCompatibility = '1.7'
repositories {
mavenCentral()
}
dependencies {
compile (
'org.codehaus.groovy:groovy-all:2.3.9',
'com.google.guava:guava:18.0',
'com.google.inject:guice:3.0'
)
}
task sourcesJar(type: Jar, dependsOn: classes) {
classifier = 'sources'
from sourceSets.main.allSource
}
task wrapper(type: Wrapper) {
gradleVersion = '1.11'
}
我需要做什么才能拥有这样的 Gradle 程序包 + 运行 我的应用程序?
要执行 run
任务,您需要应用 application
插件。您可以将以下代码段添加到您的 build.gradle
apply plugin: 'application'
mainClassName = "org.me.myapp.MyDriver"
run {
args "p"
args "50"
}
您可以将 "p"
和 "50"
替换为一些 gradle 属性 名称,并从命令行传递这些属性,如
gradle run -Pkey=p -Pvalue=50