You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@maven.apache.org by "Sylwester Lachiewicz (Jira)" <ji...@apache.org> on 2020/01/26 22:39:00 UTC

[jira] [Commented] (MNG-6071) GetResource ('/) returns 'null' if build is started with -f

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

Sylwester Lachiewicz commented on MNG-6071:
-------------------------------------------

When we call mvn verify -f ./pom.xml created MavenExecutionRequest would have basedir set as fullpath/. (dot at end).

Unfortunately, created for surefire plugin URLClassPath contains lists of jars and paths. If path would contain ".." it will be rejected - for getResource("/")

[https://github.com/AdoptOpenJDK/openjdk-jdk11/blob/master/src/java.base/share/classes/jdk/internal/loader/URLClassPath.java#L1128]

> GetResource ('/) returns 'null' if build is started with -f
> -----------------------------------------------------------
>
>                 Key: MNG-6071
>                 URL: https://issues.apache.org/jira/browse/MNG-6071
>             Project: Maven
>          Issue Type: Bug
>    Affects Versions: 3.2.1, 3.3.1, 3.3.9
>         Environment: Windows 10 x64
> Tested in cmd.exe, git bash.
>            Reporter: Alexander Bender
>            Assignee: Sylwester Lachiewicz
>            Priority: Minor
>             Fix For: 3.7.x-candidate
>
>
> I set up a very simple test maven project with only a dependency to testNG.
> {code}
>     public class TestTest {
>     @Test
>     public void test() {
>         System.out.println(getClass().getResource("/"));
> {code}
> Depending on how I build this, the call either returns null or the expected directory. How is that?
> {code}
>     // Prints: file:/C:/workspace/test/testproject/target/test-classes/
>     mvn clean test -Dtest=TestTest -f pom.xml
>     // Prints: file:/C:/workspace/test/testproject/target/test-classes/
>     mvn clean test -Dtest=TestTest -f testproject/pom.xml
>     // Prints: null
>     mvn clean test -Dtest=TestTest -f ./pom.xml
>     // Prints: null
>     mvn clean test -Dtest=TestTest -f ./testproject/pom.xml
> {code}
> Note that the second call includes "./" after -f.
> I actually want to find out the /target folder regardless of scenario (testNG in IntelliJ, Maven, Jenkins Buid, ...). So far, this way has proven the most reliable.
> {code}
>         System.out.println(getClass().getResource("./"));
> {code}
> This seems to reliably point to file:/C:/workspace/test/testproject/target/test-classes/com/testproject/test. Would this be safer to use?



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