Hi, Thanks for reporting. Could you please file a JIRA with the attached problematic pom?
Btw you might want to try users list instead to get feedback and/or to double check it's a bug or a misuse. Cheers Le 5 juin 2013 23:57, "Rob Vesse" <rve...@yarcdata.com> a écrit : > Hi All > > I've run into what seems like an odd bug where the Shade plugin apparently > gets stuck in an infinite loop when attempting to produce the Dependency > Reduced POM (DRP). For now as a hack I've turned off generation of the DRP > for my affected project because it is unlikely that the artifact being > produced will be pulled in via Maven so having a POM still reference all > the dependencies is not a huge issue for me. > > However I have attempted to produce a minimal test case and debug this a > little, hopefully someone more familiar with the plugin can dig into this > further and figure out whether this is a bug and how to fix it in future > versions of the plugin. > > Here is a minimal POM that reproduces the problem: > > > <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/xsd/maven-4.0.0.xsd"> > > <modelVersion>4.0.0</modelVersion> > > <groupId>org.example</groupId> > > <artifactId>shade-dpr-bug</artifactId> > > <version>0.0.1-SNAPSHOT</version> > > <name>Maven Shade DPR Bug Demonstrator</name> > > <description>Repro for an apparent bug discovered in Maven Shade > plugin</description> > > <dependencies> > > <dependency> > > <groupId>org.apache.jena</groupId> > > <artifactId>jena-arq</artifactId> > > <version>2.10.1</version> > > </dependency> > > <!-- If you comment out either of the following dependency then things > will work fine --> > > <dependency> > > <groupId>org.apache.jena</groupId> > > <artifactId>jena-fuseki</artifactId> > > <version>0.2.7</version> > > <scope>test</scope> > > </dependency> > > <dependency> > > <groupId>org.apache.jena</groupId> > > <artifactId>jena-fuseki</artifactId> > > <version>0.2.7</version> > > <classifier>tests</classifier> > > <scope>test</scope> > > </dependency> > > </dependencies> > > > <build> > > <plugins> > > <plugin> > > <groupId>org.apache.maven.plugins</groupId> > > <artifactId>maven-shade-plugin</artifactId> > > <version>2.1</version> > > <configuration> > > <!-- If the following is uncommented out then this project builds fine --> > > <!-- <createDependencyReducedPom>false</createDependencyReducedPom> --> > > </configuration> > > <executions> > > <execution> > > <phase>package</phase> > > <goals> > > <goal>shade</goal> > > </goals> > > </execution> > > </executions> > > </plugin> > > </plugins> > > </build> > > </project> > > > Essentially the issue appears to be down to the fact that the POM > references both the JAR and tests JAR artifacts of a module (jena-fuseki in > this case) while also referencing another module (jena-arq) which is a > transitive dependency of the other modules. Per the XML comments if I only > pull in one of the JARs for jena-fuseki things will work fine, but if I > pull in both dependencies then shade will hang repeatedly creating the > dependency reduced POM. Equally if you don't have a dependency between > pulled in that is a dependency of the other dependencies (jena-arq in my > example) then again things will work fine. > > > However with this minimal example run at the console I see the following: > > > [INFO] Replacing original artifact with shaded artifact. > > [INFO] Replacing > /Users/rvesse/Documents/workspace/shade-dpr-bug/target/shade-dpr-bug-0.0.1-SNAPSHOT.jar > with > /Users/rvesse/Documents/workspace/shade-dpr-bug/target/shade-dpr-bug-0.0.1-SNAPSHOT-shaded.jar > > [INFO] Dependency-reduced POM written at: > /Users/rvesse/Documents/workspace/shade-dpr-bug/dependency-reduced-pom.xml > > [INFO] Dependency-reduced POM written at: > /Users/rvesse/Documents/workspace/shade-dpr-bug/dependency-reduced-pom.xml > > [INFO] Dependency-reduced POM written at: > /Users/rvesse/Documents/workspace/shade-dpr-bug/dependency-reduced-pom.xml > > [INFO] Dependency-reduced POM written at: > /Users/rvesse/Documents/workspace/shade-dpr-bug/dependency-reduced-pom.xml > > [INFO] Dependency-reduced POM written at: > /Users/rvesse/Documents/workspace/shade-dpr-bug/dependency-reduced-pom.xml > > [INFO] Dependency-reduced POM written at: > /Users/rvesse/Documents/workspace/shade-dpr-bug/dependency-reduced-pom.xml > > [INFO] Dependency-reduced POM written at: > /Users/rvesse/Documents/workspace/shade-dpr-bug/dependency-reduced-pom.xml > > [INFO] Dependency-reduced POM written at: > /Users/rvesse/Documents/workspace/shade-dpr-bug/dependency-reduced-pom.xml > > [INFO] Dependency-reduced POM written at: > /Users/rvesse/Documents/workspace/shade-dpr-bug/dependency-reduced-pom.xml > > [INFO] Dependency-reduced POM written at: > /Users/rvesse/Documents/workspace/shade-dpr-bug/dependency-reduced-pom.xml > > [INFO] Dependency-reduced POM written at: > /Users/rvesse/Documents/workspace/shade-dpr-bug/dependency-reduced-pom.xml > > [INFO] Dependency-reduced POM written at: > /Users/rvesse/Documents/workspace/shade-dpr-bug/dependency-reduced-pom.xml > > > This will continue indefinitely until you kill the process. If I watch > the dependency-reduced-pom.xml on the file system the plugin appears to be > continually deleting and rewriting this file, each time the file is written > it is larger than the previous write. This implies to me that somehow the > DPR creation is getting stuck and not managing to reach a suitable halting > state. On the occasions when I have managed to kill the process while the > DPR is non-empty it appears that the problem is that the plugin is adding > <exclusions> to the non-test jar version of the dependency and is just > repeatedly adding the same set of exclusions. > > > I'm not familiar with the Maven code base and unfortunately I don't have > any free time to go delving into the code myself so if someone who knows > the plugin could investigate this it would be much appreciated. As I said > I have a workaround (even if is less than ideal) so a resolution is by no > means urgent but this certainly seems like a bug that needs addressing. As > a naïve (and clearly non-maven expert) suggestion since test dependencies > aren't transitive anyway would a simple fix be to simple have DPR creation > remove any <scope>test</scope> dependencies as a first step? > > > Thanks, > > > Rob >