[ 
https://issues.apache.org/jira/browse/MCOMPILER-445?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17248680#comment-17248680
 ] 

Benjamin Marwell edited comment on MCOMPILER-445 at 12/13/20, 10:30 PM:
------------------------------------------------------------------------

[~michael-o] I think I just found the cause.

The usual {{mvn}} script will just load a "restricted" java, as they said 
upstream. In contrast to this, {{javac}}  invocation would load some extra 
modules.

I placed a file `.mvn/jvm.config` in the IT directory I created and added the 
following lines:
{quote}{{--add-modules}}
 {{jdk.javadoc}}
 {{--add-opens}}
 {{jdk.javadoc/jdk.javadoc.doclet=ALL-UNNAMED}}
{quote}
Guess what, it works. So we could "fix" this in maven-core by adding some logic 
like this:
{quote}
{code:java}
$JAVA_HOME/bin/java -version 2>&1 \
    | head -1 \
    | grep -qs "\"16" \
    && export MAVEN_OPTS="--add-modules jdk.javadoc --add-opens 
jdk.javadoc/jdk.javadoc.doclet=ALL-UNNAMED"
{code}
{quote}
 


was (Author: mampf86):
[~michael-o] I think I just found the cause.

The usual {{mvn}} script will just load a "restricted" java, as they said 
upstream. In contrast to this, {{javac}}  invocation would load some extra 
modules.

I placed a file `.mvn/jvm.config` in the IT directory I created and added the 
following lines:
{quote}{{--add-modules}}
{{jdk.javadoc}}
{{--add-opens}}
{{jdk.javadoc/jdk.javadoc.doclet=ALL-UNNAMED}}
{quote}
Guess what, it works. So we could "fix" this in maven-core by adding some logic 
like this:

{{$JAVA_HOME/bin/java -version 2>&1 | head -1 | grep -qs "\"16" && export 
MAVEN_OPTS="--add-modules jdk.javadoc --add-opens 
jdk.javadoc/jdk.javadoc.doclet=ALL-UNNAMED"}}

 

> Javac error on jdk16 build 18: invalid flag: -Xdoclint:-missing
> ---------------------------------------------------------------
>
>                 Key: MCOMPILER-445
>                 URL: https://issues.apache.org/jira/browse/MCOMPILER-445
>             Project: Maven Compiler Plugin
>          Issue Type: Bug
>    Affects Versions: 3.8.0, 3.8.1
>         Environment: Maven 3.6.3
> Compiler-Plugin 3.8.1
> JDK16 since JDK 16 ea b 18
>            Reporter: Benjamin Marwell
>            Assignee: Benjamin Marwell
>            Priority: Major
>              Labels: jdk, jdk-javac, jdk16
>
> h2. Issue description
> When compiling with options {{noFork}} and {{-Xdoclint}}, the compiler plugin 
> will fail:
>  
> {quote}{{[INFO] 
> ------------------------------------------------------------------------}}
> {{[ERROR] Failed to execute goal 
> org.apache.maven.plugins:maven-compiler-plugin:3.8.1:compile 
> (pre-compile-jute) on project zookeeper-jute: Fatal error compiling: error: 
> invalid flag: -Xdoclint:-missing -> [Help 1]}}
> {{This is Maven debug:}}
> {{[DEBUG] Classpath:}}
> {{[DEBUG] /home/eolivelli/dev/zookeeper/zookeeper-jute/target/classes}}
> {{[DEBUG] 
> /home/eolivelli/.m2/repository/org/apache/yetus/audience-annotations/0.5.0/audience-annotations-0.5.0.jar}}
> {{[DEBUG] Source roots:}}
> {{[DEBUG] /home/eolivelli/dev/zookeeper/zookeeper-jute/src/main/java}}
> {{[DEBUG] 
> /home/eolivelli/dev/zookeeper/zookeeper-jute/target/generated-sources/java}}
> {{[DEBUG] 
> /home/eolivelli/dev/zookeeper/zookeeper-jute/target/generated-sources/annotations}}
> {{[DEBUG] Command line options:}}
> {{[DEBUG] -d /home/eolivelli/dev/zookeeper/zookeeper-jute/target/classes 
> -classpath 
> /home/eolivelli/dev/zookeeper/zookeeper-jute/target/classes:/home/eolivelli/.m2/repository/org/apache/yetus/audience-annotations/0.5.0/audience-annotations-0.5.0.jar:
>  -sourcepath 
> /home/eolivelli/dev/zookeeper/zookeeper-jute/src/main/java:/home/eolivelli/dev/zookeeper/zookeeper-jute/target/generated-sources/java:/home/eolivelli/dev/zookeeper/zookeeper-jute/target/generated-sources/annotations:
>  -s 
> /home/eolivelli/dev/zookeeper/zookeeper-jute/target/generated-sources/annotations
>  -g --release 8 -encoding UTF-8 -Werror -Xlint:deprecation -Xlint:unchecked 
> -Xlint:-options -Xdoclint:-missing -Xpkginfo:always}}
> {{[DEBUG] incrementalBuildHelper#beforeRebuildExecution}}
> {{[INFO] Compiling 36 source files to 
> /home/eolivelli/dev/zookeeper/zookeeper-jute/target/classes}}{quote}
> But -Xdoclint is a valid option.
> h2. Cause
> Without forking, maven runs {{javac}} using 
> {{com.sun.tools.javac.api.JavacTool}}. The module is not loaded.
> h2. Proposed solution
> From the mailing list:
> When running the compiler in noFork mode, use the ToolProvider to run Javac 
> in the same VM on Java9+. This can be implemented using multi-release-jars. 
> See the {{maven-jlink-plugin}} as a reference.
> h2. Related
> [Move Doclint to jdk.javadoc 
> module|https://bugs.openjdk.java.net/browse/JDK-8252712]



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to