foo bar created MCOMPILER-354:
---------------------------------

             Summary: Module patching fails: case of simple single-module 
project
                 Key: MCOMPILER-354
                 URL: https://issues.apache.org/jira/browse/MCOMPILER-354
             Project: Maven Compiler Plugin
          Issue Type: Bug
    Affects Versions: 3.7.0
         Environment: $ mvn -version
Apache Maven 3.5.4 (1edded0938998edf8bf061f1ceb3cfdeccf443fe; 
2018-06-17T20:33:14+02:00)
Maven home: G:\software\apache-maven-3.5.4-bin\apache-maven-3.5.4
Java version: 10.0.2, vendor: Oracle Corporation, runtime: C:\Program 
Files\Java\jdk-10.0.2
Default locale: fr_FR, platform encoding: Cp1252
OS name: "windows 7", version: "6.1", arch: "amd64", family: "windows"
            Reporter: foo bar
         Attachments: mvn-X-clean-install-FAILURE.log, project.png, wires.zip

Sometimes it can be difficult to setup maven test-scoped dependencies in a 
Maven multi-module project. But I think I managed to find a simple 1-module 
case where module patching doesn't work.

I have a single-module Java 10 project where the testCompile goal complains 
that Test Class A doesn't read Test Class B, which is in the same project! (but 
in a different package)
I think that's because of a bug in the module-patching flags passed by 
testCompile to javac.

My project source tree, in its simplified branch to reproduce the issue, looks 
shown in the project.png attachment.

Full log is attached as well as a zip of the issue reproduction branch. It can 
also be cloned from: 
{code:java}
git clone https://github.com/vandekeiser/wires.git
git checkout REPORT-MCOMPILER-2
mvn clean install
{code}


The flags testCompile pass to javac.
{code:java}
[INFO] --- maven-compiler-plugin:3.7.0:testCompile (default-testCompile) @ 
wires-support ---
[DEBUG] Command line options:
    -d G:\projets\wires\wires\wires\wires-support\target\test-classes
    -classpath G:\projets\wires\wires\wires\wires-support\target\test-classes;
    --module-path G:\projets\wires\wires\wires\wires-support\target\classes;
    -sourcepath G:\projets\wires\wires\wires\wires-support\src\test\java;
                
G:\projets\wires\wires\wires\wires-support\target\generated-test-sources\test-annotations;
    -s 
G:\projets\wires\wires\wires\wires-support\target\generated-test-sources\test-annotations
    -g -deprecation -target 10 -source 10 -encoding UTF-8 -Werror 
-Xlint:all,-serial
    --patch-module fr.cla.wires.support=
        G:\projets\wires\wires\wires\wires-support\target\classes;
        G:\projets\wires\wires\wires\wires-support\src\test\java;
        
G:\projets\wires\wires\wires\wires-support\target\generated-test-sources\test-annotations;
    --add-reads fr.cla.wires.support=ALL-UNNAMED
{code}

The warning I get (which for me is an error):
{code:java}
[WARNING] 
/G:/projets/wires/wires/wires/wires-support/src/test/java/fr/cla/wires/support/DoesntCompile.java:[14,20]
    class 
fr.cla.wires.support.javac_complains_this_is_not_exported.JavacComplainsThisIsNotExported
    in module fr.cla.wires.support
    is not exported

[ERROR] COMPILATION ERROR :
warnings found and -Werror specified
[INFO] 1 error
{code}



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to