Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Fixed
-
3.0.1
-
None
-
None
-
Maven 3.5.4
Java 1.8.0_181
Description
When an environment variable _JAVA_OPTIONS or JAVA_TOOL_OPTIONS is defined, every JVM that starts will output a message to inform users of these options being picked up:
$ export JAVA_TOOL_OPTIONS=-Dfoo $ java -version Picked up JAVA_TOOL_OPTIONS: -Dfoo java version "1.8.0_181" Java(TM) SE Runtime Environment (build 1.8.0_181-b13) Java HotSpot(TM) 64-Bit Server VM (build 25.181-b13, mixed mode)
Apparently this message cannot be suppressed, that's on purpose an won't change: https://bugs.openjdk.java.net/browse/JDK-8039152
Unfortunately, this message seems to be interpreted by the maven-javadoc-plugin as a warning:
[INFO] --- maven-javadoc-plugin:3.0.1:javadoc-no-fork (generate-javadoc) @ hibernate-search-util-internal-common --- [INFO] The goal 'org.apache.maven.plugins:maven-javadoc-plugin:3.0.1:javadoc' has not been previously called for the module: 'org.hibernate.search:hibernate-search-util-internal-test:jar:6.0.0-SNAPSHOT'. Trying to invoke it... [WARN] Maven will be executed in interactive mode, but no input stream has been configured for this MavenInvoker instance. Picked up JAVA_TOOL_OPTIONS: -Dfoo [WARNING] Creating fake javadoc directory to prevent repeated invocations: /home/yrodiere/workspaces/main/hibernate-search-parent/util/internal/test/target/site/apidocs [ERROR] Error fetching link: /home/yrodiere/workspaces/main/hibernate-search-parent/util/internal/test/target/site/apidocs/package-list. Ignored it. [WARNING] Javadoc Warnings [WARNING] Picked up JAVA_TOOL_OPTIONS: -Dfoo
(see the last line, the message appears in the list of warnings)
No big deal... until you enable the failOnWarnings option. Then the whole build will fail just because some JVM detected an environment variable...
I couldn't find any workaround, except disabling the failOnWarnings options, but that's more a surrender than a workaround.
Note that the definition of _JAVA_OPTIONS or JAVA_TOOL_OPTIONS is not exactly an exotic use case, especially on Continuous Integration platforms. Travis CI uses _JAVA_OPTIONS to set JVM memory limits in its containerized environments, and the Jenkins CI Pipeline Maven plugin uses JAVA_TOOL_OPTIONS to pass options to Maven processes transparently.
Attachments
Issue Links
- is duplicated by
-
MJAVADOC-541 Jenkinsfile withMaven causing JAVA_TOOL_OPTIONS message to be picked up as a Javadoc warning
- Closed
- links to