org.gradle.api.tasks.JavaExec Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of gradle-api Show documentation
Show all versions of gradle-api Show documentation
Gradle 6.9.1 API redistribution.
/*
* Copyright 2011 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.gradle.api.tasks;
import org.gradle.api.file.FileCollection;
import org.gradle.api.internal.ConventionTask;
import org.gradle.api.internal.tasks.options.Option;
import org.gradle.process.JavaExecSpec;
import org.gradle.process.JavaForkOptions;
import org.gradle.process.ProcessForkOptions;
import org.gradle.process.internal.ExecActionFactory;
import org.gradle.process.internal.JavaExecAction;
import javax.inject.Inject;
import java.io.File;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.List;
import java.util.Map;
/**
* Executes a Java application in a child process.
*
* Similar to {@link org.gradle.api.tasks.Exec}, but starts a JVM with the given classpath and application class.
*
*
* apply plugin: 'java'
*
* task runApp(type: JavaExec) {
* classpath = sourceSets.main.runtimeClasspath
*
* main = 'package.Main'
*
* // arguments to pass to the application
* args 'appArg1'
* }
*
*
* The process can be started in debug mode (see {@link #getDebug()}) in an ad-hoc manner by supplying the `--debug-jvm` switch when invoking the build.
*
* gradle someJavaExecTask --debug-jvm
*
*/
public class JavaExec extends ConventionTask implements JavaExecSpec {
private final JavaExecAction javaExecHandleBuilder;
public JavaExec() {
javaExecHandleBuilder = getExecActionFactory().newJavaExecAction();
}
@Inject
protected ExecActionFactory getExecActionFactory() {
throw new UnsupportedOperationException();
}
@TaskAction
public void exec() {
setMain(getMain()); // make convention mapping work (at least for 'main'...
setJvmArgs(getJvmArgs()); // ...and for 'jvmArgs')
javaExecHandleBuilder.execute();
}
/**
* {@inheritDoc}
*/
public List getAllJvmArgs() {
return javaExecHandleBuilder.getAllJvmArgs();
}
/**
* {@inheritDoc}
*/
public void setAllJvmArgs(Iterable> arguments) {
javaExecHandleBuilder.setAllJvmArgs(arguments);
}
/**
* {@inheritDoc}
*/
public List getJvmArgs() {
return javaExecHandleBuilder.getJvmArgs();
}
/**
* {@inheritDoc}
*/
public void setJvmArgs(Iterable> arguments) {
javaExecHandleBuilder.setJvmArgs(arguments);
}
/**
* {@inheritDoc}
*/
public JavaExec jvmArgs(Iterable> arguments) {
javaExecHandleBuilder.jvmArgs(arguments);
return this;
}
/**
* {@inheritDoc}
*/
public JavaExec jvmArgs(Object... arguments) {
javaExecHandleBuilder.jvmArgs(arguments);
return this;
}
/**
* {@inheritDoc}
*/
public Map getSystemProperties() {
return javaExecHandleBuilder.getSystemProperties();
}
/**
* {@inheritDoc}
*/
public void setSystemProperties(Map properties) {
javaExecHandleBuilder.setSystemProperties(properties);
}
/**
* {@inheritDoc}
*/
public JavaExec systemProperties(Map properties) {
javaExecHandleBuilder.systemProperties(properties);
return this;
}
/**
* {@inheritDoc}
*/
public JavaExec systemProperty(String name, Object value) {
javaExecHandleBuilder.systemProperty(name, value);
return this;
}
/**
* {@inheritDoc}
*/
public FileCollection getBootstrapClasspath() {
return javaExecHandleBuilder.getBootstrapClasspath();
}
/**
* {@inheritDoc}
*/
public void setBootstrapClasspath(FileCollection classpath) {
javaExecHandleBuilder.setBootstrapClasspath(classpath);
}
/**
* {@inheritDoc}
*/
public JavaExec bootstrapClasspath(Object... classpath) {
javaExecHandleBuilder.bootstrapClasspath(classpath);
return this;
}
/**
* {@inheritDoc}
*/
public String getMinHeapSize() {
return javaExecHandleBuilder.getMinHeapSize();
}
/**
* {@inheritDoc}
*/
public void setMinHeapSize(String heapSize) {
javaExecHandleBuilder.setMinHeapSize(heapSize);
}
/**
* {@inheritDoc}
*/
public String getDefaultCharacterEncoding() {
return javaExecHandleBuilder.getDefaultCharacterEncoding();
}
/**
* {@inheritDoc}
*/
public void setDefaultCharacterEncoding(String defaultCharacterEncoding) {
javaExecHandleBuilder.setDefaultCharacterEncoding(defaultCharacterEncoding);
}
/**
* {@inheritDoc}
*/
public String getMaxHeapSize() {
return javaExecHandleBuilder.getMaxHeapSize();
}
/**
* {@inheritDoc}
*/
public void setMaxHeapSize(String heapSize) {
javaExecHandleBuilder.setMaxHeapSize(heapSize);
}
/**
* {@inheritDoc}
*/
public boolean getEnableAssertions() {
return javaExecHandleBuilder.getEnableAssertions();
}
/**
* {@inheritDoc}
*/
public void setEnableAssertions(boolean enabled) {
javaExecHandleBuilder.setEnableAssertions(enabled);
}
/**
* {@inheritDoc}
*/
public boolean getDebug() {
return javaExecHandleBuilder.getDebug();
}
/**
* {@inheritDoc}
*/
@Option(option = "debug-jvm", description = "Enable debugging for the process. The process is started suspended and listening on port 5005. [INCUBATING]")
public void setDebug(boolean enabled) {
javaExecHandleBuilder.setDebug(enabled);
}
/**
* {@inheritDoc}
*/
public String getMain() {
return javaExecHandleBuilder.getMain();
}
/**
* {@inheritDoc}
*/
public JavaExec setMain(String mainClassName) {
javaExecHandleBuilder.setMain(mainClassName);
return this;
}
/**
* {@inheritDoc}
*/
public List getArgs() {
return javaExecHandleBuilder.getArgs();
}
/**
* {@inheritDoc}
*/
public JavaExec setArgs(Iterable> applicationArgs) {
javaExecHandleBuilder.setArgs(applicationArgs);
return this;
}
/**
* {@inheritDoc}
*/
public JavaExec args(Object... args) {
javaExecHandleBuilder.args(args);
return this;
}
/**
* {@inheritDoc}
*/
public JavaExecSpec args(Iterable> args) {
javaExecHandleBuilder.args(args);
return this;
}
/**
* {@inheritDoc}
*/
public JavaExec setClasspath(FileCollection classpath) {
javaExecHandleBuilder.setClasspath(classpath);
return this;
}
/**
* {@inheritDoc}
*/
public JavaExec classpath(Object... paths) {
javaExecHandleBuilder.classpath(paths);
return this;
}
/**
* {@inheritDoc}
*/
public FileCollection getClasspath() {
return javaExecHandleBuilder.getClasspath();
}
/**
* {@inheritDoc}
*/
public JavaExec copyTo(JavaForkOptions options) {
javaExecHandleBuilder.copyTo(options);
return this;
}
/**
* {@inheritDoc}
*/
@Optional @Input
public String getExecutable() {
return javaExecHandleBuilder.getExecutable();
}
/**
* {@inheritDoc}
*/
public void setExecutable(Object executable) {
javaExecHandleBuilder.setExecutable(executable);
}
/**
* {@inheritDoc}
*/
public JavaExec executable(Object executable) {
javaExecHandleBuilder.executable(executable);
return this;
}
/**
* {@inheritDoc}
*/
@Internal
public File getWorkingDir() {
return javaExecHandleBuilder.getWorkingDir();
}
/**
* {@inheritDoc}
*/
public void setWorkingDir(Object dir) {
javaExecHandleBuilder.setWorkingDir(dir);
}
/**
* {@inheritDoc}
*/
public JavaExec workingDir(Object dir) {
javaExecHandleBuilder.workingDir(dir);
return this;
}
/**
* {@inheritDoc}
*/
@Internal
public Map getEnvironment() {
return javaExecHandleBuilder.getEnvironment();
}
/**
* {@inheritDoc}
*/
public void setEnvironment(Map environmentVariables) {
javaExecHandleBuilder.setEnvironment(environmentVariables);
}
/**
* {@inheritDoc}
*/
public JavaExec environment(String name, Object value) {
javaExecHandleBuilder.environment(name, value);
return this;
}
/**
* {@inheritDoc}
*/
public JavaExec environment(Map environmentVariables) {
javaExecHandleBuilder.environment(environmentVariables);
return this;
}
/**
* {@inheritDoc}
*/
public JavaExec copyTo(ProcessForkOptions target) {
javaExecHandleBuilder.copyTo(target);
return this;
}
/**
* {@inheritDoc}
*/
public JavaExec setStandardInput(InputStream inputStream) {
javaExecHandleBuilder.setStandardInput(inputStream);
return this;
}
/**
* {@inheritDoc}
*/
@Internal
public InputStream getStandardInput() {
return javaExecHandleBuilder.getStandardInput();
}
/**
* {@inheritDoc}
*/
public JavaExec setStandardOutput(OutputStream outputStream) {
javaExecHandleBuilder.setStandardOutput(outputStream);
return this;
}
/**
* {@inheritDoc}
*/
@Internal
public OutputStream getStandardOutput() {
return javaExecHandleBuilder.getStandardOutput();
}
/**
* {@inheritDoc}
*/
public JavaExec setErrorOutput(OutputStream outputStream) {
javaExecHandleBuilder.setErrorOutput(outputStream);
return this;
}
/**
* {@inheritDoc}
*/
@Internal
public OutputStream getErrorOutput() {
return javaExecHandleBuilder.getErrorOutput();
}
/**
* {@inheritDoc}
*/
public JavaExecSpec setIgnoreExitValue(boolean ignoreExitValue) {
javaExecHandleBuilder.setIgnoreExitValue(ignoreExitValue);
return this;
}
/**
* {@inheritDoc}
*/
@Input
public boolean isIgnoreExitValue() {
return javaExecHandleBuilder.isIgnoreExitValue();
}
/**
* {@inheritDoc}
*/
@Internal
public List getCommandLine() {
return javaExecHandleBuilder.getCommandLine();
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy