You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@maven.apache.org by "Thibaud Lepretre (JIRA)" <ji...@apache.org> on 2019/07/22 11:53:00 UTC

[jira] [Created] (MNG-6716) relative testSourceDirectory on macos throw duplicate class error

Thibaud Lepretre created MNG-6716:
-------------------------------------

             Summary: relative testSourceDirectory on macos throw duplicate class error
                 Key: MNG-6716
                 URL: https://issues.apache.org/jira/browse/MNG-6716
             Project: Maven
          Issue Type: Bug
          Components: core, POM
    Affects Versions: 3.6.1
         Environment: MacOS Sierra 10.12.6
mvn 3.6.1
            Reporter: Thibaud Lepretre


With custom folder structure where test source folder is not sharing the same parent folder as source folder, for example (is just a sample structure itself is not the key point):
{code:java}
ws/bug-macos-tstsrc-relative-path-src/src/main/java
ws/bug-macos-tstsrc-relative-path-tst/src

{code}
With following pom.xml customization
{code:java}
<testSourceDirectory>../bug-macos-tstsrc-relative-path-tst/src</testSourceDirectory> {code}
On {{<= 3.6.0}} *everything works* but until 3.6.1 MacOS (I'm not able to reproduce on Docker container maven:3.6.1), I have the following error:
{code:java}
AppTest.java:[10,8] duplicate class: dev.thibaud.AppTest{code}
And if I check with {{-X}} I saw 2 paths added instead of 1
{code:java}
[DEBUG] Source roots:
 [DEBUG]  /private/tmp/mvntest/ws/bug-macos-tstsrc-relative-path-src/../bug-macos-tstsrc-relative-path-tst/src
 [DEBUG]  /private/tmp/mvntest/ws/bug-macos-tstsrc-relative-path-tst/src{code}
h2. *How to reproduce:*
{code:java}
#!/usr/bin/env bash

readonly SRC_FOLDER="bug-macos-tstsrc-relative-path-src"
readonly TST_FOLDER="bug-macos-tstsrc-relative-path-tst"

mkdir -p ws
cd ws/
mvn archetype:generate -DgroupId=dev.thibaud -DartifactId=${SRC_FOLDER} -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false
mkdir -p ${TST_FOLDER}/src/
mv ${SRC_FOLDER}/src/test/java/* ${TST_FOLDER}/src/
rm -fr ${SRC_FOLDER}/src/test
cat <<EOT > ${SRC_FOLDER}/pom.xml
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>dev.thibaud</groupId>
  <artifactId>bug-macos-tstsrcrelative-path</artifactId>
  <packaging>jar</packaging>
  <version>1.0-SNAPSHOT</version>
  <name>bug-macos-tstsrcrelative-path</name>
  <url>http://maven.apache.org</url>
  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
  </dependencies>
  <build>
      <testSourceDirectory>../${TST_FOLDER}/src</testSourceDirectory>
  </build>
</project>
EOT{code}
Then simply run
{code:java}
mvn -f bug-macos-tstsrc-relative-path-src/pom.xml clean test -X{code}
h2. *Workaround:*

is not using relative path by editing
{code:java}
<testSourceDirectory>../bug-macos-tstsrc-relative-path-tst/src</testSourceDirectory>{code}
to
{code:java}
<testSourceDirectory>${project.basedir}/../bug-macos-tstsrc-relative-path-tst/src</testSourceDirectory>{code}
 

 



--
This message was sent by Atlassian JIRA
(v7.6.14#76016)