maven-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From François Loison (Jira) <j...@apache.org>
Subject [jira] [Comment Edited] (MCOMPILER-372) Unable to compile modularized test code depending on test-jar
Date Fri, 20 Dec 2019 20:25:00 GMT

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

François Loison edited comment on MCOMPILER-372 at 12/20/19 8:24 PM:
---------------------------------------------------------------------

Previous answer was partially correct.

I had a test-compile failure for a project containing a JAXB XSD to java generation. Old code
was trying to patch unmodularized dependencies.

I added it 'prj0' project to test it.

With new fix in pull request, prj0 passes. Also, all it tests pass.
 ( [https://github.com/apache/maven-compiler-plugin/pull/27] )

New code patches only dependencies with MODULEDESCRIPTOR.

I copy/pasted some methods from CompilerMojo. It may be shared if needed.

You told that junit-3.8.2 should not be patched.

{{With fix, there is no --patch-module junit=... but there is still --patch-module prj1_372=...;junit-3.8.2.jar}}

This is required to compile OK. For some reason, adding junit-3.8.2.jar to class path is
not sufficient.

*Here is compiler patch module arguments, paths are relative from prj2 for readability:*
{code:java}
--patch-module prj2_372=
target\classes;
src\test\java;
target\generated-test-sources\test-annotations;
{code}
{code:java}
--patch-module prj1_372=
target\test-classes;
..\prj1\target\classes;
..\prj1\target\test-classes;
%LOCAL_REPO%\junit\junit\3.8.2\junit-3.8.2.jar;
{code}
For information, compiler path module argument without pull request is:
{code:java}
--patch-module prj2_372=
target\classes;
src\test\java;
target\generated-test-sources\test-annotations;{code}
{code:java}
 {code}


was (Author: loizbak):
Previous answer was partially correct.

I had a test-compile failure for a project containing a JAXB XSD to java generation. Old code
was trying to patch unmodularized dependencies.

I added it 'prj0' project to test it.

With new fix in pull request, prj0 passes. Also, all it tests pass.
( [https://github.com/apache/maven-compiler-plugin/pull/27] )

New code patches only dependencies with MODULEDESCRIPTOR.

You told that junit-3.8.2 should not be patched.

{{With fix, there is no --patch-module junit=... but there is still --patch-module prj1_372=...;junit-3.8.2.jar}}

This is required to compile OK. For some reason, adding junit-3.8.2.jar to class path is
not sufficient.

*Here is compiler patch module arguments, paths are relative from prj2 for readability:*
{code:java}
--patch-module prj2_372=
target\classes;
src\test\java;
target\generated-test-sources\test-annotations;
{code}
{code:java}
--patch-module prj1_372=
target\test-classes;
..\prj1\target\classes;
..\prj1\target\test-classes;
%LOCAL_REPO%\junit\junit\3.8.2\junit-3.8.2.jar;
{code}
For information, compiler path module argument without pull request is:
{code:java}
--patch-module prj2_372=
target\classes;
src\test\java;
target\generated-test-sources\test-annotations;{code}
{code:java}
 {code}

> Unable to compile modularized test code depending on test-jar
> -------------------------------------------------------------
>
>                 Key: MCOMPILER-372
>                 URL: https://issues.apache.org/jira/browse/MCOMPILER-372
>             Project: Maven Compiler Plugin
>          Issue Type: Bug
>    Affects Versions: 3.8.0
>         Environment: Manjaro Linux 64 bit, Open JDK 11, Apache-Maven-3.6.0
>            Reporter: Jeronimo Backes
>            Assignee: Robert Scholte
>            Priority: Blocker
>         Attachments: maven-compiler-plugin.MCOMPILER-372.patch, univocity-all.zip
>
>          Time Spent: 0.5h
>  Remaining Estimate: 0h
>
> I'm refactoring [univocity-parsers|https://github.com/uniVocity/univocity-parsers] into
multiple projects with modules (attached a zip with everything I got)
> However I'm unable to reliably build the attached project with its unit tests. Unpack
then cd into "univocity-all-parent", then run "mvn clean install".
>  
> All projects generate test-jars, but for some reason class *com.univocity.parsers.core.routine.ResultSetWritingRoutine*
inside "univocity-parsers-core/src/test/java/" is not found when compiling the tests of projects
"univocity-csv", "univocity-tsv" and "univocity-fixedwidth".
>  
> Interestingly, the issue doesn't seem to be consistent as I got "univocity-csv" and "univocity-tsv"
building without errors a few times. "univocity-fixedwidth" however failed consistently every
single time.
> Some of the errors I get are:
> {{[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.8.0:testCompile
(default-testCompile) on project univocity-csv: Compilation failure: Compilation failure:
}}
> {{[ERROR] /home/jbax/dev/repository/univocity-all/univocity-oss/univocity-csv/src/test/java/com/univocity/csv/CsvWriterTest.java:[27,49]
cannot find symbol}}
> {{[ERROR]   symbol:   class ResultSetWritingRoutine}}
> {{[ERROR]   location: package com.univocity.parsers.core.routine}}
> {{[ERROR] /home/jbax/dev/repository/univocity-all/univocity-oss/univocity-csv/src/test/java/com/univocity/csv/CsvWriterTest.java:[681,17]
cannot find symbol}}
> {{[ERROR]   symbol:   class ResultSetWritingRoutine}}
> {{[ERROR]   location: class com.univocity.csv.CsvWriterTest}}
> {{[ERROR] /home/jbax/dev/repository/univocity-all/univocity-oss/univocity-csv/src/test/java/com/univocity/csv/CsvWriterTest.java:[681,52]
cannot find symbol}}
> {{[ERROR]   symbol:   class ResultSetWritingRoutine}}
> {{[ERROR]   location: class com.univocity.csv.CsvWriterTest}}
> {{[ERROR] /home/jbax/dev/repository/univocity-all/univocity-oss/univocity-csv/src/test/java/com/univocity/csv/CsvWriterTest.java:[691,17]
cannot find symbol}}
> {{[ERROR]   symbol:   class ResultSetTest}}
> {{[ERROR]   location: class com.univocity.csv.CsvWriterTest}}
> {{[ERROR] /home/jbax/dev/repository/univocity-all/univocity-oss/univocity-csv/src/test/java/com/univocity/csv/CsvWriterTest.java:[691,45]
cannot find symbol}}
> {{[ERROR]   symbol:   class ResultSetTest}}
> {{[ERROR]   location: class com.univocity.csv.CsvWriterTest}}
> {{[ERROR] /home/jbax/dev/repository/univocity-all/univocity-oss/univocity-csv/src/test/java/com/univocity/csv/routine/CsvRoutinesTest.java:[123,17]
cannot find symbol}}
> {{[ERROR]   symbol:   class ResultSetWritingRoutine}}
> {{[ERROR]   location: class com.univocity.csv.routine.CsvRoutinesTest}}
> {{[ERROR] /home/jbax/dev/repository/univocity-all/univocity-oss/univocity-csv/src/test/java/com/univocity/csv/routine/CsvRoutinesTest.java:[123,52]
cannot find symbol}}
> {{[ERROR]   symbol:   class ResultSetWritingRoutine}}
> {{[ERROR]   location: class com.univocity.csv.routine.CsvRoutinesTest}}
> {{[ERROR] /home/jbax/dev/repository/univocity-all/univocity-oss/univocity-csv/src/test/java/com/univocity/csv/routine/CsvRoutinesTest.java:[124,68]
package ResultSetWritingRoutine does not exist}}
>  
> I was also getting errors saying that the "Example" class was not found, or that the
"printAndValidate" method was not found (that one comes from the univocity-output-tester dependency)..
>  
> There's something very weird going on and it's not consistently reproducible. If you
for example change the code in the failing tests use "*import static com.univocity.parsers.core.routine.ResultSetWritingRoutine.**
" you may get a different set of errors. It's pretty intractable.
> I hope this provides enough information, let me know if you need anything else.



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

Mime
View raw message