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

Herve Boutemy commented on MSHADE-342:
--------------------------------------

nice catch: looks like this IT should be defined as a setup IT = the normal way 
to show its special role
setting relativePath is a good workaround, given the setup is really minimal
putting the pom.xml in the root directory and not defining it as setup job 
could perhaps do even a better job at showing the intent of this parent pom 
(that is just a config for Java 9+)

> Many ITs fail when run in isolation
> -----------------------------------
>
>                 Key: MSHADE-342
>                 URL: https://issues.apache.org/jira/browse/MSHADE-342
>             Project: Maven Shade Plugin
>          Issue Type: Bug
>    Affects Versions: 3.2.2
>            Reporter: Peter De Maeyer
>            Priority: Minor
>
> Maven invoker plugin supports running ITs in isolation, but many ITs fail 
> when running them in isolation.
> One example (there are many others):
> {code:bash}
> mvn -Prun-its clean verify -Dinvoker.test=MSHADE-258_module_relocation
>  {code}
> They fail because of a missing {{target/it/setup-parent/pom.xml}}.
> The failure is logged in {{target/it/setup-parent/build.log}}.
> The reason is that there is a missing parent dependency, which is apparently 
> required for _any_ IT in this project.
> When you run all the ITs together, it works by accident because the missing 
> directory is created by some other test in the beginning of the IT test run, 
> and then all subsequent tests work as well.
> h3. Potential solution 1
> A fix is to identify the broken ITs by running all of them in isolation and 
> add the following to all of the broken ones:
> {code:xml}
>     <parent>
>         <groupId>org.apache.maven.plugins.shade.its</groupId>
>         <artifactId>shade-parent</artifactId>
>         <version>1.0</version>
>         <relativePath>../setup-parent</relativePath>
>     </parent>
> {code}
> It should be documented somewhere (maybe it is but I overlooked it?) that, 
> when writing an IT, this _must_ be the parent.
> (+) This will work.
> (-) Every individual IT's {{pom.xml}} needs to be updated with a parent 
> dependency it has no business with.
> (-) It excludes writing an IT for a root project (that has no parent).
> Maybe we can find a solution that doesn't involve updating all IT projects.
> I'll need to investigate a bit more, first I'll need to figure out where the 
> {{setup-parent}} project comes from.



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

Reply via email to