gluonhq / substrate

Create native Java(FX) apps for desktop, mobile and embedded
GNU General Public License v2.0
393 stars 52 forks source link

"the command line is too long" exception on windows #597

Closed kristofdho closed 4 years ago

kristofdho commented 4 years ago

On windows, with a lot of dependencies, the ProcessBuilder in AbstractTargetConfiguration#compile throws a the command line is too long exception on compilation.

An easy workaround is to add a client/$app/gvm/jar folder to the build files and copy the classpath jars here. The classpath passed to the native-image command can then filter out all jars & add client/$app/gvm/jar/* instead.

kristofdho commented 4 years ago

I completely missed the duplicate, apologies.

kristofdho commented 4 years ago

I'm not well versed with the whole forking stuff, so here's a possible patch of what I described

patch ```patch Index: src/main/java/com/gluonhq/substrate/target/AbstractTargetConfiguration.java IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>windows-1252 =================================================================== --- src/main/java/com/gluonhq/substrate/target/AbstractTargetConfiguration.java (revision 888c68ed8a972b0e6143aa4e521c62d914737bda) +++ src/main/java/com/gluonhq/substrate/target/AbstractTargetConfiguration.java (date 1589808801810) @@ -39,13 +39,10 @@ import com.gluonhq.substrate.util.ProcessRunner; import com.gluonhq.substrate.util.Strings; -import java.io.BufferedWriter; -import java.io.FileOutputStream; -import java.io.IOException; -import java.io.InputStream; -import java.io.OutputStreamWriter; +import java.io.*; import java.nio.file.Files; import java.nio.file.Path; +import java.nio.file.Paths; import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; @@ -155,7 +152,7 @@ } compileRunner.addArg(getJniPlatformArg()); compileRunner.addArg(Constants.NATIVE_IMAGE_ARG_CLASSPATH); - compileRunner.addArg(processedClasspath); + compileRunner.addArg(shortenClasspath(processedClasspath)); compileRunner.addArgs(projectConfiguration.getCompilerArgs()); compileRunner.addArg(projectConfiguration.getMainClassName()); @@ -700,10 +697,6 @@ return success; } - // --- package protected methods - - // Methods below with default implementation, can be overridden by subclasses - /** * If we are not using JavaFX, we immediately return the provided classpath: no further processing * is needed. If we do use JavaFX, we will first {@link FileDeps#getJavaFXSDKLibsPath obtain @@ -724,6 +717,27 @@ "javafx-base", "javafx-graphics", "javafx-controls", "javafx-fxml", "javafx-media"); } + private String shortenClasspath(String classPath) throws IOException { + Path jarPath = paths.getJarPath(); + if (Files.exists(jarPath)) { + FileOps.deleteDirectory(jarPath); + } + Logger.logDebug("Extracting classpath jars to: " + jarPath); + + List jars = new ClassPath(classPath).filter(s -> s.endsWith(".jar")); + for (String jar : jars) { + Path source = Paths.get(jar); + FileOps.copyFile(source, jarPath.resolve(source.getFileName())); + } + String cp = new ClassPath(classPath).filterToString(s -> !s.endsWith(".jar")); + String jarPathWildcard = jarPath.toString() + File.separator + "*"; + return cp + File.pathSeparator + jarPathWildcard; + } + + // --- package protected methods + + // Methods below with default implementation, can be overridden by subclasses + /** * Returns whether or not this target allows for the HTTPS protocol * By default, this method returns true, but subclasses can decide against it. Index: src/main/java/com/gluonhq/substrate/model/ClassPath.java IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>windows-1252 =================================================================== --- src/main/java/com/gluonhq/substrate/model/ClassPath.java (revision 888c68ed8a972b0e6143aa4e521c62d914737bda) +++ src/main/java/com/gluonhq/substrate/model/ClassPath.java (date 1589786800549) @@ -58,6 +58,17 @@ return asStream().filter(predicate).collect(Collectors.toList()); } + /** + * Returns a string classpath consisting of the elements of this classpath that match + * the given predicate. + * @param predicate predicate to apply to elements of this classpath. Should not be null. + * @return filtered list of elements of this classpath + */ + public String filterToString(Predicate predicate) { + Objects.requireNonNull(predicate); + return asStream().filter(predicate).collect(Collectors.joining(File.pathSeparator)); + } + /** * Returns a List consisting of the results of applying the given * function to the elements of this classpath. Index: src/main/java/com/gluonhq/substrate/model/ProcessPaths.java IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>windows-1252 =================================================================== --- src/main/java/com/gluonhq/substrate/model/ProcessPaths.java (revision 888c68ed8a972b0e6143aa4e521c62d914737bda) +++ src/main/java/com/gluonhq/substrate/model/ProcessPaths.java (date 1589786800550) @@ -43,6 +43,7 @@ private Path genPath; private Path tmpPath; private Path logPath; + private Path jarPath; private Path sourcePath; private Path nativeCodePath; @@ -52,6 +53,7 @@ * |-- $app * |-- gvm * |-- $appName + * |-- jar * |-- lib * |-- log * |-- tmp @@ -73,6 +75,7 @@ genPath = Files.createDirectories(appPath.resolve(Constants.GEN_PATH)); tmpPath = Files.createDirectories(gvmPath.resolve(Constants.TMP_PATH)); logPath = Files.createDirectories(gvmPath.resolve(Constants.LOG_PATH)); + jarPath = Files.createDirectories(gvmPath.resolve(Constants.JAR_PATH)); sourcePath = clientPath.getParent().getParent().resolve(Constants.SOURCE_PATH); nativeCodePath = sourcePath.getParent().resolve(Constants.NATIVE_CODE_PATH); } @@ -109,6 +112,10 @@ return logPath; } + public Path getJarPath() { + return jarPath; + } + public Path getNativeCodePath() { return nativeCodePath; } Index: src/main/java/com/gluonhq/substrate/Constants.java IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>windows-1252 =================================================================== --- src/main/java/com/gluonhq/substrate/Constants.java (revision 888c68ed8a972b0e6143aa4e521c62d914737bda) +++ src/main/java/com/gluonhq/substrate/Constants.java (date 1589786800710) @@ -114,6 +114,7 @@ public static final String TMP_PATH = "tmp"; public static final String LIB_PATH = "lib"; public static final String LOG_PATH = "log"; + public static final String JAR_PATH = "jar"; public static final String APK_PATH = "apk"; public static final String NATIVE_CODE_PATH = "native"; ```
tiainen commented 4 years ago

There is a PR in GraalVM that would allow us to fix this problem using argument files. Once that is available, we'll update substrate to make use of that.

https://github.com/oracle/graal/pull/2443

kristofdho commented 4 years ago

There is a PR in GraalVM that would allow us to fix this problem using argument files. Once that is available, we'll update substrate to make use of that.

oracle/graal#2443

This does look like a different use-case to me though, the issue you mention calls the java version of native image, which passes the argument file to java. Here however we are calling the native-image exe (or cmd which in turn calls the exe) and the number of arguments here is already too long, so it won't ever make it to the code of the issue you mention.

lazar-mitrovic commented 4 years ago

There is a PR in GraalVM that would allow us to fix this problem using argument files. Once that is available, we'll update substrate to make use of that. oracle/graal#2443

This does look like a different use-case to me though, the issue you mention calls the java version of native image, which passes the argument file to java. Here however we are calling the native-image exe (or cmd which in turn calls the exe) and the number of arguments here is already too long, so it won't ever make it to the code of the issue you mention.

native-image.exe is native image compiled version of java NativeImage class :)

kristofdho commented 4 years ago

There is a PR in GraalVM that would allow us to fix this problem using argument files. Once that is available, we'll update substrate to make use of that. oracle/graal#2443

This does look like a different use-case to me though, the issue you mention calls the java version of native image, which passes the argument file to java. Here however we are calling the native-image exe (or cmd which in turn calls the exe) and the number of arguments here is already too long, so it won't ever make it to the code of the issue you mention.

native-image.exe is native image compiled version of java NativeImage class :)

Yes, but the ProcessBuilder inside the maven plugin calling native-image.exe throws the exception, not the one inside native-image.exe.

tiainen commented 4 years ago

I believe what @lazar-mitrovic is trying to say say, is that we could call NativeImage from java instead? From there we could fallback to using the @ file arguments that are supported by default from java.

tiainen commented 4 years ago

Apparently, you can only pass options to the java program from a file and not the command line arguments. So that is not going to work.

The only solutions I see for now are:

@lazar-mitrovic Do you think it's doable to add such an option to native-image? Compiling the most basic JavaFX application already gives the following command line:

C:\tools\graalvm-ce-java11-20.2.0-dev\bin\native-image.cmd --report-unsupported-elements-at-runtime "-Djdk.internal.lambda.eagerlyInitialize=false" --no-server -H:+ExitAfterRelocatableImageWrite -H:+SharedLibrary -H:+AddAllCharsets -H:+ReportExceptionStackTraces -H:-DeadlockWatchdogExitOnTimeout "-H:DeadlockWatchdogInterval=0" -H:+RemoveSaturatedTypeFlows "--features=org.graalvm.home.HomeFinderFeature" "-H:TempDirectory=C:\jenkins\workspace\substrate-integration-test-windows\hellofx\build\autoclient\x86_64-windows\gvm\tmp" "-H:EnableURLProtocols=http,https" "-H:ReflectionConfigurationFiles=C:\jenkins\workspace\substrate-integration-test-windows\hellofx\build\autoclient\x86_64-windows\gvm\reflectionconfig-x86_64-windows.json" "-H:JNIConfigurationFiles=C:\jenkins\workspace\substrate-integration-test-windows\hellofx\build\autoclient\x86_64-windows\gvm\jniconfig-x86_64-windows.json" "-H:ResourceConfigurationFiles=C:\jenkins\workspace\substrate-integration-test-windows\hellofx\build\autoclient\x86_64-windows\gvm\resourceconfig-x86_64-windows.json" "-H:IncludeResourceBundles=com/sun/javafx/scene/control/skin/resources/controls,com/sun/javafx/scene/control/skin/resources/controls-nt,com.sun.javafx.tk.quantum.QuantumMessagesBundle" "-Dsvm.platform=org.graalvm.nativeimage.Platform$WINDOWS_AMD64" -cp "C:\jenkins\workspace\substrate-integration-test-windows\test-project\helloFX\build\classes\java\main;C:\jenkins\workspace\substrate-integration-test-windows\test-project\helloFX\build\resources\main;C:\jenkins\workspace\substrate-integration-test-windows\openjfx-15-latest-windows-x86_64-static-sdk\lib\javafx.controls.jar;C:\jenkins\workspace\substrate-integration-test-windows\openjfx-15-latest-windows-x86_64-static-sdk\lib\javafx.graphics.jar;C:\jenkins\workspace\substrate-integration-test-windows\openjfx-15-latest-windows-x86_64-static-sdk\lib\javafx.base.jar" com.gluonhq.substrate.test.Main

If the classpath becomes really long, the command line limit might be exceeded quickly. If @ argument files would be supported in native-image, the above command could then be shortened to:

C:\tools\graalvm-ce-java11-20.2.0-dev\bin\native-image.cmd @C:\tmp\native-image-args.txt com.gluonhq.substrate.test.Main
johanvos commented 4 years ago

We used to invoke NativeImage.build() (or similar) from substrate, but then switched to invoking native-image as a command.

Would it make sense to go back to the original approach where we call methods on NativeImage? This requires Substrate to depend on the svm.jar and related jars, so it means invoking Substrate should be done with a priori knowledge about the location of GRAALVM_HOME.

leandroZanatta commented 3 years ago

Hi, I keep getting the exception when compiling a native image application on windows in release 20.3. Follows trace and graalvm versions used

openjdk version "11.0.9" 2020-10-20 OpenJDK Runtime Environment GraalVM CE 20.3.0 (build 11.0.9+10-jvmci-20.3-b06) OpenJDK 64-Bit Server VM GraalVM CE 20.3.0 (build 11.0.9+10-jvmci-20.3-b06, mixed mode, sharing)

C:\Enviroment\graalvm-ce-java11-20.3.0\bin\native-image.cmd -cp C:\Users\ContainerAdministrator\.m2\repository\br\com\sysmo\server\dto\s1-server-dto\1.33.9\s1-server-dto-1.33.9.jar;C:\Users\ContainerAdministrator\.m2\ repository\br\com\sysmo\s1\server\pdv\sincronizacao\service\s1-server-pdv-sincronizacao-service\1.33.1\s1-server-pdv-sincronizacao-service-1.33.1.jar;C:\Users\ContainerAdministrator\.m2\repository\br\com\sysmo\s1\server\pdv\sincronizac ao\repository\s1-server-pdv-sincronizacao-repository\1.33.1\s1-server-pdv-sincronizacao-repository-1.33.1.jar;C:\Users\ContainerAdministrator\.m2\repository\com\querydsl\querydsl-jpa\4.3.1\querydsl-jpa-4.3.1.jar;C:\Users\ContainerAdmin istrator\.m2\repository\com\querydsl\querydsl-core\4.3.1\querydsl-core-4.3.1.jar;C:\Users\ContainerAdministrator\.m2\repository\com\mysema\commons\mysema-commons-lang\0.2.4\mysema-commons-lang-0.2.4.jar;C:\Users\ContainerAdministrator\ .m2\repository\javax\inject\javax.inject\1\javax.inject-1.jar;C:\Users\ContainerAdministrator\.m2\repository\br\com\sysmo\s1\server\pdv\sincronizacao\util\s1-server-pdv-sincronizacao-util\1.33.1\s1-server-pdv-sincronizacao-util-1.33.1. jar;C:\Users\ContainerAdministrator\.m2\repository\org\projectlombok\lombok\1.18.12\lombok-1.18.12.jar;C:\Users\ContainerAdministrator\.m2\repository\br\com\sysmo\s1\server\promocao\sincronizacao\s1-server-promocao-sincronizacao\1.33.3 \s1-server-promocao-sincronizacao-1.33.3.jar;C:\Users\ContainerAdministrator\.m2\repository\io\github\openfeign\feign-core\10.2.3\feign-core-10.2.3.jar;C:\Users\ContainerAdministrator\.m2\repository\io\github\openfeign\feign-slf4j\10.2 .3\feign-slf4j-10.2.3.jar;C:\Users\ContainerAdministrator\.m2\repository\io\github\openfeign\feign-jackson\10.2.3\feign-jackson-10.2.3.jar;C:\Users\ContainerAdministrator\.m2\repository\com\fasterxml\jackson\core\jackson-databind\2.11. 0\jackson-databind-2.11.0.jar;C:\Users\ContainerAdministrator\.m2\repository\io\github\openfeign\feign-jaxrs\10.2.3\feign-jaxrs-10.2.3.jar;C:\Users\ContainerAdministrator\.m2\repository\javax\ws\rs\jsr311-api\1.1.1\jsr311-api-1.1.1.jar ;C:\Users\ContainerAdministrator\.m2\repository\br\com\sysmo\s1\server\promocao\service\s1-server-promocao-service\1.33.3\s1-server-promocao-service-1.33.3.jar;C:\Users\ContainerAdministrator\.m2\repository\org\springframework\spring-c ontext\5.2.7.RELEASE\spring-context-5.2.7.RELEASE.jar;C:\Users\ContainerAdministrator\.m2\repository\org\springframework\spring-expression\5.2.7.RELEASE\spring-expression-5.2.7.RELEASE.jar;C:\Users\ContainerAdministrator\.m2\repository \org\springframework\spring-aspects\5.2.7.RELEASE\spring-aspects-5.2.7.RELEASE.jar;C:\Users\ContainerAdministrator\.m2\repository\org\aspectj\aspectjweaver\1.9.5\aspectjweaver-1.9.5.jar;C:\Users\ContainerAdministrator\.m2\repository\br \com\sysmo\s1\server\promocao\repository\s1-server-promocao-repository\1.33.3\s1-server-promocao-repository-1.33.3.jar;C:\Users\ContainerAdministrator\.m2\repository\br\com\sysmo\s1\server\promocao\util\s1-server-promocao-util\1.33.3\s 1-server-promocao-util-1.33.3.jar;C:\Users\ContainerAdministrator\.m2\repository\br\com\sysmo\server\util\s1-server-util\1.33.9\s1-server-util-1.33.9.jar;C:\Users\ContainerAdministrator\.m2\repository\io\springfox\springfox-swagger2\2. 9.2\springfox-swagger2-2.9.2.jar;C:\Users\ContainerAdministrator\.m2\repository\io\swagger\swagger-models\1.5.20\swagger-models-1.5.20.jar;C:\Users\ContainerAdministrator\.m2\repository\io\springfox\springfox-spi\2.9.2\springfox-spi-2. 9.2.jar;C:\Users\ContainerAdministrator\.m2\repository\io\springfox\springfox-core\2.9.2\springfox-core-2.9.2.jar;C:\Users\ContainerAdministrator\.m2\repository\io\springfox\springfox-schema\2.9.2\springfox-schema-2.9.2.jar;C:\Users\Co ntainerAdministrator\.m2\repository\io\springfox\springfox-swagger-common\2.9.2\springfox-swagger-common-2.9.2.jar;C:\Users\ContainerAdministrator\.m2\repository\io\springfox\springfox-spring-web\2.9.2\springfox-spring-web-2.9.2.jar;C: \Users\ContainerAdministrator\.m2\repository\org\springframework\plugin\spring-plugin-core\1.2.0.RELEASE\spring-plugin-core-1.2.0.RELEASE.jar;C:\Users\ContainerAdministrator\.m2\repository\org\springframework\plugin\spring-plugin-metad ata\1.2.0.RELEASE\spring-plugin-metadata-1.2.0.RELEASE.jar;C:\Users\ContainerAdministrator\.m2\repository\org\mapstruct\mapstruct\1.2.0.Final\mapstruct-1.2.0.Final.jar;C:\Users\ContainerAdministrator\.m2\repository\org\ini4j\ini4j\0.5. 4\ini4j-0.5.4.jar;C:\Users\ContainerAdministrator\.m2\repository\com\querydsl\querydsl-apt\4.3.1\querydsl-apt-4.3.1.jar;C:\Users\ContainerAdministrator\.m2\repository\com\querydsl\querydsl-codegen\4.3.1\querydsl-codegen-4.3.1.jar;C:\Us ers\ContainerAdministrator\.m2\repository\com\mysema\codegen\codegen\0.6.8\codegen-0.6.8.jar;C:\Users\ContainerAdministrator\.m2\repository\org\eclipse\jdt\core\compiler\ecj\4.3.1\ecj-4.3.1.jar;C:\Users\ContainerAdministrator\.m2\repos itory\com\querydsl\querydsl-collections\4.3.1\querydsl-collections-4.3.1.jar;C:\Users\ContainerAdministrator\.m2\repository\junit\junit\4.13\junit-4.13.jar;C:\Users\ContainerAdministrator\.m2\repository\org\hamcrest\hamcrest-core\2.2\h amcrest-core-2.2.jar;C:\Users\ContainerAdministrator\.m2\repository\org\hamcrest\hamcrest\2.2\hamcrest-2.2.jar;C:\Users\ContainerAdministrator\.m2\repository\commons-net\commons-net\3.6\commons-net-3.6.jar;C:\Users\ContainerAdministrat or\.m2\repository\com\jayway\jsonpath\json-path\2.4.0\json-path-2.4.0.jar;C:\Users\ContainerAdministrator\.m2\repository\net\minidev\json-smart\2.3\json-smart-2.3.jar;C:\Users\ContainerAdministrator\.m2\repository\net\minidev\accessors -smart\1.2\accessors-smart-1.2.jar;C:\Users\ContainerAdministrator\.m2\repository\javax\servlet\javax.servlet-api\4.0.1\javax.servlet-api-4.0.1.jar;C:\Users\ContainerAdministrator\.m2\repository\commons-codec\commons-codec\1.14\commons -codec-1.14.jar;C:\Users\ContainerAdministrator\.m2\repository\org\modelmapper\extensions\modelmapper-spring\2.3.4\modelmapper-spring-2.3.4.jar;C:\Users\ContainerAdministrator\.m2\repository\org\modelmapper\modelmapper\2.3.4\modelmappe r-2.3.4.jar;C:\Users\ContainerAdministrator\.m2\repository\com\fasterxml\jackson\dataformat\jackson-dataformat-xml\2.11.0\jackson-dataformat-xml-2.11.0.jar;C:\Users\ContainerAdministrator\.m2\repository\com\fasterxml\jackson\module\jac kson-module-jaxb-annotations\2.11.0\jackson-module-jaxb-annotations-2.11.0.jar;C:\Users\ContainerAdministrator\.m2\repository\jakarta\activation\jakarta.activation-api\1.2.2\jakarta.activation-api-1.2.2.jar;C:\Users\ContainerAdministra tor\.m2\repository\org\codehaus\woodstox\stax2-api\4.2\stax2-api-4.2.jar;C:\Users\ContainerAdministrator\.m2\repository\com\fasterxml\woodstox\woodstox-core\6.2.0\woodstox-core-6.2.0.jar;C:\Users\ContainerAdministrator\.m2\repository\j avax\validation\validation-api\2.0.1.Final\validation-api-2.0.1.Final.jar;C:\Users\ContainerAdministrator\.m2\repository\com\google\code\findbugs\jsr305\1.3.9\jsr305-1.3.9.jar;C:\Users\ContainerAdministrator\.m2\repository\com\google\c ode\gson\gson\2.8.6\gson-2.8.6.jar;C:\Users\ContainerAdministrator\.m2\repository\com\google\guava\guava\18.0\guava-18.0.jar;C:\Users\ContainerAdministrator\.m2\repository\br\com\caelum\stella\caelum-stella-core\2.1.2\caelum-stella-cor e-2.1.2.jar;C:\Users\ContainerAdministrator\.m2\repository\br\com\sysmo\server\javanfe\s1-server-javanfe\1.33.4\s1-server-javanfe-1.33.4.jar;C:\Users\ContainerAdministrator\.m2\repository\br\com\swconsultoria\java-nfe\4.00.13\java-nfe- 4.00.13.jar;C:\Users\ContainerAdministrator\.m2\repository\br\com\swconsultoria\java_certificado\2.3\java_certificado-2.3.jar;C:\Users\ContainerAdministrator\.m2\repository\commons-httpclient\commons-httpclient\3.1\commons-httpclient-3 .1.jar;C:\Users\ContainerAdministrator\.m2\repository\org\bouncycastle\bcprov-jdk16\1.46\bcprov-jdk16-1.46.jar;C:\Users\ContainerAdministrator\.m2\repository\org\apache\httpcomponents\httpcore\4.4.13\httpcore-4.4.13.jar;C:\Users\Contai nerAdministrator\.m2\repository\com\sun\xml\bind\jaxb-impl\2.3.1\jaxb-impl-2.3.1.jar;C:\Users\ContainerAdministrator\.m2\repository\com\sun\xml\bind\jaxb-xjc\2.3.1\jaxb-xjc-2.3.1.jar;C:\Users\ContainerAdministrator\.m2\repository\com\s un\xml\bind\jaxb-core\2.3.0.1\jaxb-core-2.3.0.1.jar;C:\Users\ContainerAdministrator\.m2\repository\org\apache\axis2\axis2-kernel\1.7.5\axis2-kernel-1.7.5.jar;C:\Users\ContainerAdministrator\.m2\repository\org\apache\ws\commons\axiom\ax iom-impl\1.2.20\axiom-impl-1.2.20.jar;C:\Users\ContainerAdministrator\.m2\repository\org\codehaus\woodstox\woodstox-core-asl\4.2.0\woodstox-core-asl-4.2.0.jar;C:\Users\ContainerAdministrator\.m2\repository\org\apache\geronimo\specs\ger onimo-ws-metadata_2.0_spec\1.1.2\geronimo-ws-metadata_2.0_spec-1.1.2.jar;C:\Users\ContainerAdministrator\.m2\repository\org\apache\geronimo\specs\geronimo-jta_1.1_spec\1.1\geronimo-jta_1.1_spec-1.1.jar;C:\Users\ContainerAdministrator\. m2\repository\commons-fileupload\commons-fileupload\1.3.1\commons-fileupload-1.3.1.jar;C:\Users\ContainerAdministrator\.m2\repository\wsdl4j\wsdl4j\1.6.3\wsdl4j-1.6.3.jar;C:\Users\ContainerAdministrator\.m2\repository\org\apache\ws\xml schema\xmlschema-core\2.2.1\xmlschema-core-2.2.1.jar;C:\Users\ContainerAdministrator\.m2\repository\org\apache\neethi\neethi\3.0.3\neethi-3.0.3.jar;C:\Users\ContainerAdministrator\.m2\repository\org\apache\woden\woden-core\1.0M10\woden -core-1.0M10.jar;C:\Users\ContainerAdministrator\.m2\repository\commons-logging\commons-logging\1.1.1\commons-logging-1.1.1.jar;C:\Users\ContainerAdministrator\.m2\repository\org\apache\axis2\axis2-adb\1.7.5\axis2-adb-1.7.5.jar;C:\User s\ContainerAdministrator\.m2\repository\org\apache\ws\commons\axiom\axiom-dom\1.2.20\axiom-dom-1.2.20.jar;C:\Users\ContainerAdministrator\.m2\repository\org\apache\geronimo\specs\geronimo-activation_1.1_spec\1.0.2\geronimo-activation_1 .1_spec-1.0.2.jar;C:\Users\ContainerAdministrator\.m2\repository\org\apache\axis2\axis2-jaxws\1.7.5\axis2-jaxws-1.7.5.jar;C:\Users\ContainerAdministrator\.m2\repository\org\apache\geronimo\specs\geronimo-annotation_1.0_spec\1.1\geronim o-annotation_1.0_spec-1.1.jar;C:\Users\ContainerAdministrator\.m2\repository\org\apache\geronimo\specs\geronimo-jaxws_2.2_spec\1.0\geronimo-jaxws_2.2_spec-1.0.jar;C:\Users\ContainerAdministrator\.m2\repository\org\apache\axis2\axis2-sa aj\1.7.5\axis2-saaj-1.7.5.jar;C:\Users\ContainerAdministrator\.m2\repository\org\apache\geronimo\specs\geronimo-saaj_1.3_spec\1.0.1\geronimo-saaj_1.3_spec-1.0.1.jar;C:\Users\ContainerAdministrator\.m2\repository\org\apache\axis2\axis2- metadata\1.7.5\axis2-metadata-1.7.5.jar;C:\Users\ContainerAdministrator\.m2\repository\com\sun\xml\ws\jaxws-tools\2.1.3\jaxws-tools-2.1.3.jar;C:\Users\ContainerAdministrator\.m2\repository\org\apache\geronimo\specs\geronimo-javamail_1. 4_spec\1.6\geronimo-javamail_1.4_spec-1.6.jar;C:\Users\ContainerAdministrator\.m2\repository\xml-resolver\xml-resolver\1.2\xml-resolver-1.2.jar;C:\Users\ContainerAdministrator\.m2\repository\xalan\xalan\2.7.0\xalan-2.7.0.jar;C:\Users\C ontainerAdministrator\.m2\repository\org\apache\axis2\axis2-transport-http\1.7.5\axis2-transport-http-1.7.5.jar;C:\Users\ContainerAdministrator\.m2\repository\org\apache\httpcomponents\httpclient\4.5.12\httpclient-4.5.12.jar;C:\Users\C ontainerAdministrator\.m2\repository\org\apache\axis2\axis2-transport-local\1.7.5\axis2-transport-local-1.7.5.jar;C:\Users\ContainerAdministrator\.m2\repository\org\apache\ws\commons\axiom\axiom-api\1.2.20\axiom-api-1.2.20.jar;C:\Users \ContainerAdministrator\.m2\repository\jaxen\jaxen\1.2.0\jaxen-1.2.0.jar;C:\Users\ContainerAdministrator\.m2\repository\org\apache\geronimo\specs\geronimo-stax-api_1.0_spec\1.0.1\geronimo-stax-api_1.0_spec-1.0.1.jar;C:\Users\ContainerA dministrator\.m2\repository\org\apache\james\apache-mime4j-core\0.7.2\apache-mime4j-core-0.7.2.jar;C:\Users\ContainerAdministrator\.m2\repository\org\springframework\boot\spring-boot-starter-web\2.3.1.RELEASE\spring-boot-starter-web-2. 3.1.RELEASE.jar;C:\Users\ContainerAdministrator\.m2\repository\org\springframework\boot\spring-boot-starter-json\2.3.1.RELEASE\spring-boot-starter-json-2.3.1.RELEASE.jar;C:\Users\ContainerAdministrator\.m2\repository\com\fasterxml\jack son\datatype\jackson-datatype-jdk8\2.11.0\jackson-datatype-jdk8-2.11.0.jar;C:\Users\ContainerAdministrator\.m2\repository\com\fasterxml\jackson\module\jackson-module-parameter-names\2.11.0\jackson-module-parameter-names-2.11.0.jar;C:\U sers\ContainerAdministrator\.m2\repository\org\springframework\boot\spring-boot-starter-tomcat\2.3.1.RELEASE\spring-boot-starter-tomcat-2.3.1.RELEASE.jar;C:\Users\ContainerAdministrator\.m2\repository\org\apache\tomcat\embed\tomcat-emb ed-core\9.0.36\tomcat-embed-core-9.0.36.jar;C:\Users\ContainerAdministrator\.m2\repository\org\glassfish\jakarta.el\3.0.3\jakarta.el-3.0.3.jar;C:\Users\ContainerAdministrator\.m2\repository\org\apache\tomcat\embed\tomcat-embed-websocke t\9.0.36\tomcat-embed-websocket-9.0.36.jar;C:\Users\ContainerAdministrator\.m2\repository\org\springframework\spring-web\5.2.7.RELEASE\spring-web-5.2.7.RELEASE.jar;C:\Users\ContainerAdministrator\.m2\repository\org\springframework\spri ng-webmvc\5.2.7.RELEASE\spring-webmvc-5.2.7.RELEASE.jar;C:\Users\ContainerAdministrator\.m2\repository\br\com\sysmo\s1\server\pdv\venda\api\s1-server-pdv-venda-api\1.33.14\s1-server-pdv-venda-api-1.33.14-mono.jar;C:\Users\ContainerAdmi nistrator\.m2\repository\org\springframework\boot\spring-boot-starter-data-jpa\2.3.1.RELEASE\spring-boot-starter-data-jpa-2.3.1.RELEASE.jar;C:\Users\ContainerAdministrator\.m2\repository\org\springframework\boot\spring-boot-starter-aop \2.3.1.RELEASE\spring-boot-starter-aop-2.3.1.RELEASE.jar;C:\Users\ContainerAdministrator\.m2\repository\jakarta\transaction\jakarta.transaction-api\1.3.3\jakarta.transaction-api-1.3.3.jar;C:\Users\ContainerAdministrator\.m2\repository\ jakarta\persistence\jakarta.persistence-api\2.2.3\jakarta.persistence-api-2.2.3.jar;C:\Users\ContainerAdministrator\.m2\repository\org\springframework\boot\spring-boot-starter-jdbc\2.3.1.RELEASE\spring-boot-starter-jdbc-2.3.1.RELEASE.j ar;C:\Users\ContainerAdministrator\.m2\repository\com\zaxxer\HikariCP\3.4.5\HikariCP-3.4.5.jar;C:\Users\ContainerAdministrator\.m2\repository\org\springframework\spring-context-support\5.2.7.RELEASE\spring-context-support-5.2.7.RELEASE .jar;C:\Users\ContainerAdministrator\.m2\repository\org\reactivestreams\reactive-streams\1.0.3\reactive-streams-1.0.3.jar;C:\Users\ContainerAdministrator\.m2\repository\commons-io\commons-io\2.6\commons-io-2.6.jar;C:\Users\ContainerAdm inistrator\.m2\repository\org\springframework\spring-jdbc\5.2.7.RELEASE\spring-jdbc-5.2.7.RELEASE.jar;C:\Users\ContainerAdministrator\.m2\repository\org\springframework\spring-beans\5.2.7.RELEASE\spring-beans-5.2.7.RELEASE.jar;C:\Users \ContainerAdministrator\.m2\repository\org\springframework\spring-core\5.2.7.RELEASE\spring-core-5.2.7.RELEASE.jar;C:\Users\ContainerAdministrator\.m2\repository\org\springframework\spring-jcl\5.2.7.RELEASE\spring-jcl-5.2.7.RELEASE.jar ;C:\Users\ContainerAdministrator\.m2\repository\org\springframework\spring-tx\5.2.7.RELEASE\spring-tx-5.2.7.RELEASE.jar;C:\Users\ContainerAdministrator\.m2\repository\br\com\sysmo\s1\server\pdv\venda\intercomm\s1-server-pdv-venda-inter comm\1.33.14\s1-server-pdv-venda-intercomm-1.33.14.jar;C:\Users\ContainerAdministrator\.m2\repository\br\com\sysmo\s1\server\pdv\venda\service\s1-server-pdv-venda-service\1.33.14\s1-server-pdv-venda-service-1.33.14.jar;C:\Users\Contain erAdministrator\.m2\repository\javax\el\javax.el-api\2.2.4\javax.el-api-2.2.4.jar;C:\Users\ContainerAdministrator\.m2\repository\br\com\sysmo\s1\server\pdv\venda\repository\s1-server-pdv-venda-repository\1.33.14\s1-server-pdv-venda-rep ository-1.33.14.jar;C:\Users\ContainerAdministrator\.m2\repository\br\com\sysmo\s1\server\pdv\venda\util\s1-server-pdv-venda-util\1.33.14\s1-server-pdv-venda-util-1.33.14.jar;C:\Users\ContainerAdministrator\.m2\repository\org\slf4j\slf 4j-api\1.7.30\slf4j-api-1.7.30.jar;C:\Users\ContainerAdministrator\.m2\repository\br\com\sysmo\s1\server\pdv\venda\sincronizacao\s1-server-pdv-venda-sincronizacao\1.33.14\s1-server-pdv-venda-sincronizacao-1.33.14.jar;C:\Users\Container Administrator\.m2\repository\com\fasterxml\jackson\datatype\jackson-datatype-jsr310\2.11.0\jackson-datatype-jsr310-2.11.0.jar;C:\Users\ContainerAdministrator\.m2\repository\com\fasterxml\jackson\core\jackson-annotations\2.11.0\jackson- annotations-2.11.0.jar;C:\Users\ContainerAdministrator\.m2\repository\com\fasterxml\jackson\core\jackson-core\2.11.0\jackson-core-2.11.0.jar;C:\Users\ContainerAdministrator\.m2\repository\org\hibernate\hibernate-entitymanager\5.4.17.Fi nal\hibernate-entitymanager-5.4.17.Final.jar;C:\Users\ContainerAdministrator\.m2\repository\org\jboss\logging\jboss-logging\3.4.1.Final\jboss-logging-3.4.1.Final.jar;C:\Users\ContainerAdministrator\.m2\repository\org\hibernate\hibernat e-core\5.4.17.Final\hibernate-core-5.4.17.Final.jar;C:\Users\ContainerAdministrator\.m2\repository\antlr\antlr\2.7.7\antlr-2.7.7.jar;C:\Users\ContainerAdministrator\.m2\repository\org\jboss\jandex\2.1.3.Final\jandex-2.1.3.Final.jar;C:\ Users\ContainerAdministrator\.m2\repository\javax\activation\javax.activation-api\1.2.0\javax.activation-api-1.2.0.jar;C:\Users\ContainerAdministrator\.m2\repository\javax\xml\bind\jaxb-api\2.3.1\jaxb-api-2.3.1.jar;C:\Users\ContainerAd ministrator\.m2\repository\org\glassfish\jaxb\jaxb-runtime\2.3.3\jaxb-runtime-2.3.3.jar;C:\Users\ContainerAdministrator\.m2\repository\jakarta\xml\bind\jakarta.xml.bind-api\2.3.3\jakarta.xml.bind-api-2.3.3.jar;C:\Users\ContainerAdminis trator\.m2\repository\org\glassfish\jaxb\txw2\2.3.3\txw2-2.3.3.jar;C:\Users\ContainerAdministrator\.m2\repository\com\sun\istack\istack-commons-runtime\3.0.11\istack-commons-runtime-3.0.11.jar;C:\Users\ContainerAdministrator\.m2\reposi tory\com\sun\activation\jakarta.activation\1.2.2\jakarta.activation-1.2.2.jar;C:\Users\ContainerAdministrator\.m2\repository\org\dom4j\dom4j\2.1.3\dom4j-2.1.3.jar;C:\Users\ContainerAdministrator\.m2\repository\org\hibernate\common\hibe rnate-commons-annotations\5.1.0.Final\hibernate-commons-annotations-5.1.0.Final.jar;C:\Users\ContainerAdministrator\.m2\repository\javax\persistence\javax.persistence-api\2.2\javax.persistence-api-2.2.jar;C:\Users\ContainerAdministrato r\.m2\repository\org\jboss\spec\javax\transaction\jboss-transaction-api_1.2_spec\1.1.1.Final\jboss-transaction-api_1.2_spec-1.1.1.Final.jar;C:\Users\ContainerAdministrator\.m2\repository\com\querydsl\querydsl-sql-spring\4.3.1\querydsl- sql-spring-4.3.1.jar;C:\Users\ContainerAdministrator\.m2\repository\com\querydsl\querydsl-sql\4.3.1\querydsl-sql-4.3.1.jar;C:\Users\ContainerAdministrator\.m2\repository\org\apache\servicemix\bundles\org.apache.servicemix.bundles.javax -inject\1_2\org.apache.servicemix.bundles.javax-inject-1_2.jar;C:\Users\ContainerAdministrator\.m2\repository\com\infradna\tool\bridge-method-annotation\1.13\bridge-method-annotation-1.13.jar;C:\Users\ContainerAdministrator\.m2\reposit ory\com\github\lwaddicor\spring-startup-analysis\1.1.0\spring-startup-analysis-1.1.0.jar;C:\Users\ContainerAdministrator\.m2\repository\org\apache\commons\commons-lang3\3.10\commons-lang3-3.10.jar;C:\Users\ContainerAdministrator\.m2\re pository\org\antlr\stringtemplate\4.0.2\stringtemplate-4.0.2.jar;C:\Users\ContainerAdministrator\.m2\repository\org\antlr\antlr-runtime\3.3\antlr-runtime-3.3.jar;C:\Users\ContainerAdministrator\.m2\repository\joda-time\joda-time\2.10.6 \joda-time-2.10.6.jar;C:\Users\ContainerAdministrator\.m2\repository\org\hibernate\validator\hibernate-validator\6.1.0.Final\hibernate-validator-6.1.0.Final.jar;C:\Users\ContainerAdministrator\.m2\repository\jakarta\validation\jakarta. validation-api\2.0.2\jakarta.validation-api-2.0.2.jar;C:\Users\ContainerAdministrator\.m2\repository\com\fasterxml\classmate\1.5.1\classmate-1.5.1.jar;C:\Users\ContainerAdministrator\.m2\repository\org\springframework\spring-orm\5.2.7. RELEASE\spring-orm-5.2.7.RELEASE.jar;C:\Users\ContainerAdministrator\.m2\repository\org\postgresql\postgresql\42.2.16\postgresql-42.2.16.jar;C:\Users\ContainerAdministrator\.m2\repository\org\checkerframework\checker-qual\3.5.0\checker -qual-3.5.0.jar;C:\Users\ContainerAdministrator\.m2\repository\io\swagger\swagger-annotations\1.5.20\swagger-annotations-1.5.20.jar;C:\Users\ContainerAdministrator\.m2\repository\org\springframework\spring-context-indexer\5.2.7.RELEASE \spring-context-indexer-5.2.7.RELEASE.jar;C:\Users\ContainerAdministrator\.m2\repository\org\springframework\boot\spring-boot-starter\2.3.1.RELEASE\spring-boot-starter-2.3.1.RELEASE.jar;C:\Users\ContainerAdministrator\.m2\repository\or g\springframework\boot\spring-boot\2.3.1.RELEASE\spring-boot-2.3.1.RELEASE.jar;C:\Users\ContainerAdministrator\.m2\repository\org\springframework\boot\spring-boot-autoconfigure\2.3.1.RELEASE\spring-boot-autoconfigure-2.3.1.RELEASE.jar; C:\Users\ContainerAdministrator\.m2\repository\org\springframework\boot\spring-boot-starter-logging\2.3.1.RELEASE\spring-boot-starter-logging-2.3.1.RELEASE.jar;C:\Users\ContainerAdministrator\.m2\repository\ch\qos\logback\logback-class ic\1.2.3\logback-classic-1.2.3.jar;C:\Users\ContainerAdministrator\.m2\repository\ch\qos\logback\logback-core\1.2.3\logback-core-1.2.3.jar;C:\Users\ContainerAdministrator\.m2\repository\org\apache\logging\log4j\log4j-to-slf4j\2.13.3\lo g4j-to-slf4j-2.13.3.jar;C:\Users\ContainerAdministrator\.m2\repository\org\apache\logging\log4j\log4j-api\2.13.3\log4j-api-2.13.3.jar;C:\Users\ContainerAdministrator\.m2\repository\org\slf4j\jul-to-slf4j\1.7.30\jul-to-slf4j-1.7.30.jar; C:\Users\ContainerAdministrator\.m2\repository\jakarta\annotation\jakarta.annotation-api\1.3.5\jakarta.annotation-api-1.3.5.jar;C:\Users\ContainerAdministrator\.m2\repository\org\yaml\snakeyaml\1.26\snakeyaml-1.26.jar;C:\Users\Containe rAdministrator\.m2\repository\org\springframework\data\spring-data-jpa\2.4.0\spring-data-jpa-2.4.0.jar;C:\Users\ContainerAdministrator\.m2\repository\org\springframework\spring-aop\5.2.7.RELEASE\spring-aop-5.2.7.RELEASE.jar;C:\Users\Co ntainerAdministrator\.m2\repository\org\aspectj\aspectjrt\1.9.5\aspectjrt-1.9.5.jar;C:\Users\ContainerAdministrator\.m2\repository\org\springframework\data\spring-data-commons\2.4.0\spring-data-commons-2.4.0.jar;C:\Users\ContainerAdmin istrator\.m2\repository\org\springframework\experimental\spring-graalvm-native\0.7.1\spring-graalvm-native-0.7.1.jar;C:\Users\ContainerAdministrator\.m2\repository\net\bytebuddy\byte-buddy\1.10.11\byte-buddy-1.10.11.jar;C:\s1-server-pd v-mono-nativo\s1-server-pdv-mono-application\target\s1-server-pdv-mono-application-1.33.4-SNAPSHOT.jar -J-Xmx20g -Dspring.graal.remove-unused-autoconfig=true --no-fallback --allow-incomplete-classpath --report-unsupported-elements-at-r untime -H:+ReportExceptionStackTraces --no-server -Dspring.native.verify=true -H:DeadlockWatchdogInterval=40 -H:+DeadlockWatchdogExitOnTimeout --enable-all-security-services -H:+RemoveSaturatedTypeFlows -Dspring.native.remove-unused-au toconfig=true -Dspring.native.remove-yaml-support=true -Dspring.native.remove-jmx-support=true -Dspring.native.remove-spel-support=true -Dspring.graal.skip-logback=true -Dspring.graal.verbose=true -H:IncludeResourceBundles=javax.servle t.http.LocalStrings -H:IncludeResourceBundles=javax.servlet.LocalStrings -H:EnableURLProtocols=http,jar -H:Name=pdvsysmonative -H:Class=br.com.sysmo.s1.server.pdv.mono.app.Application -H:EnableURLProtocols=http,jar --initialize-at-buil d-time=org.postgresql.util.SharedTimer,org.postgresql.Driver --initialize-at-build-time=org.springframework.data.repository.CrudRepository,org.springframework.http.converter.xml.MappingJackson2XmlHttpMessageConverter,org.springframewor k.http.converter.AbstractHttpMessageConverter,org.springframework.http.converter.AbstractGenericHttpMessageConverter --initialize-at-build-time=org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter --initialize-a t-build-time=sun.instrument.InstrumentationImpl,java.sql.DriverManager,javax.el.ListELResolver,javax.el.MapELResolver The command line is too long.

jperedadnr commented 3 years ago

@leandroZanatta You are not using the Gluon Client plugin, are you? If that is the case you should file the issue in the GraalVM issue tracker.

leandroZanatta commented 3 years ago

No, I am using the native-image-maven-plugin `

<plugin>
                        <groupId>org.graalvm.nativeimage</groupId>
                        <artifactId>native-image-maven-plugin</artifactId>
                        <version>20.3.0</version>
                        <configuration>
                            <buildArgs>
                                -J-Xmx20g
                                -Dspring.graal.remove-unused-autoconfig=true
                                --no-fallback --allow-incomplete-classpath
                                --report-unsupported-elements-at-runtime
                                -H:+ReportExceptionStackTraces
                                --no-server
                                -Dspring.native.verify=true
                                -H:DeadlockWatchdogInterval=40
                                -H:+DeadlockWatchdogExitOnTimeout
                                --enable-all-security-services
                                -H:+RemoveSaturatedTypeFlows
                                -Dspring.native.remove-unused-autoconfig=true
                                -Dspring.native.remove-yaml-support=true
                                -Dspring.native.remove-jmx-support=true
                                -Dspring.native.remove-spel-support=true
                                -Dspring.graal.skip-logback=true
                                -Dspring.graal.verbose=true
                                -H:IncludeResourceBundles=javax.servlet.http.LocalStrings
                                -H:IncludeResourceBundles=javax.servlet.LocalStrings
                                -H:EnableURLProtocols=http,jar
                                -H:Name=pdvsysmonative
                                -H:Class=br.com.sysmo.s1.server.pdv.mono.app.Application
                                -H:EnableURLProtocols=http,jar
                                --initialize-at-build-time=org.postgresql.util.SharedTimer,org.postgresql.Driver
                                --initialize-at-build-time=org.springframework.data.repository.CrudRepository,org.springframework.http.converter.xml.MappingJackson2XmlHttpMessageConverter,org.springframework.http.converter.AbstractHttpMessageConverter,org.springframework.http.converter.AbstractGenericHttpMessageConverter
                                --initialize-at-build-time=org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter
                                --initialize-at-build-time=sun.instrument.InstrumentationImpl,java.sql.DriverManager,javax.el.ListELResolver,javax.el.MapELResolver
                            </buildArgs>
                        </configuration>
                        <executions>
                            <execution>
                                <goals>
                                    <goal>native-image</goal>
                                </goals>
                                <phase>package</phase>
                            </execution>
                        </executions>
                    </plugin>
jperedadnr commented 3 years ago

Well, my point still remains, you are not using Gluon plugins, that plugin is from the GraalVM team, and you should file the issue there.

leandroZanatta commented 3 years ago

OK, there is already a PR in the plugin. https://github.com/oracle/graal/issues/2995 I'll wait for the outcome. Thanks