繁体   English   中英

Gradle JavaExec Task,如何使用allJvmArgs属性

[英]Gradle JavaExec Task, How to use allJvmArgs property

根据Java Exec allJvmArgs属性javadoc,allJvmArgs是

List<String> allJvmArgs

The full set of arguments to use to launch the JVM for the process. This includes arguments to define system properties, the minimum/maximum heap size, and the bootstrap classpath.

我试图使用此属性失败。 以下是我的尝试。

示例Java代码。 // SRC /主/ JAVA / COM /例子

package com.examples;

public class AllJvmArgumentsInJavaExecBug {

    public static void main(String[] args) {
        System.out.println("Hello From Java");
    }

}


// File: build.gradle
apply plugin: 'java'

task(runJavaExecNormal, dependsOn: 'classes', type: JavaExec) {
    main = 'com.examples.AllJvmArgumentsInJavaExecBug'
    classpath = sourceSets.main.runtimeClasspath

}


task(runJavaExecArgumentSetExample1, dependsOn: 'classes', type: JavaExec) {
    main = 'com.examples.AllJvmArgumentsInJavaExecBug'
    classpath = sourceSets.main.runtimeClasspath
    allJvmArgs = [ '-Xms10240m', '-Xmx20280m']

}

task(runJavaExecArgumentSetExample2, dependsOn: 'classes', type: JavaExec) {
    main = 'com.examples.AllJvmArgumentsInJavaExecBug'
    classpath = sourceSets.main.runtimeClasspath

    List<String> argumentList = new ArrayList<String>();
    argumentList.add('-Xms10240m')
    argumentList.add('-Xmx20280m')
    allJvmArgs = argumentList
}

我得到以下错误。

P:\github\gradleJavaExecAllJvmArgs>gradle

FAILURE: Build failed with an exception.

* Where:
Build file 'P:\github\gradleJavaExecAllJvmArgs\build.gradle' line: 14

* What went wrong:
A problem occurred evaluating root project 'gradleJavaExecAllJvmArgs'.
> java.lang.UnsupportedOperationException (no error message)

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.

BUILD FAILED

Total time: 3.733 secs

我无法使用此属性。 我可以使用此问题中指出的maxHeapSize =“2g”。 我想用它来设置最小堆大小。

以下是github项目 ,它重现了这种情况。

来自org.gradle.process.internal.JavaExecHandleBuilder的源org.gradle.process.internal.JavaExecHandleBuilder包含:

public void setAllJvmArgs(Iterable<?> arguments) {
   throw new UnsupportedOperationException();
}

你应该能够使用jvmArgs而不是allJvmArgs

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM