Author: bimargulies
Date: Fri Aug 31 15:55:50 2012
New Revision: 1379486
URL: http://svn.apache.org/viewvc?rev=1379486&view=rev
Log:
MSHADE-130, MSHADE-124: Mark mojo as threadSafe for parallel builds, Need
better plan for getting dependency-reduced-pom.xml out of basedir
o put thread safe back, and start on unique name alternative solution to
MSHADE-124.
Modified:
maven/plugins/trunk/maven-shade-plugin/src/main/java/org/apache/maven/plugins/shade/mojo/ShadeMojo.java
Modified:
maven/plugins/trunk/maven-shade-plugin/src/main/java/org/apache/maven/plugins/shade/mojo/ShadeMojo.java
URL:
http://svn.apache.org/viewvc/maven/plugins/trunk/maven-shade-plugin/src/main/java/org/apache/maven/plugins/shade/mojo/ShadeMojo.java?rev=1379486&r1=1379485&r2=1379486&view=diff
==============================================================================
---
maven/plugins/trunk/maven-shade-plugin/src/main/java/org/apache/maven/plugins/shade/mojo/ShadeMojo.java
(original)
+++
maven/plugins/trunk/maven-shade-plugin/src/main/java/org/apache/maven/plugins/shade/mojo/ShadeMojo.java
Fri Aug 31 15:55:50 2012
@@ -90,7 +90,7 @@ import java.util.Set;
* @author David Blevins
* @author Hiram Chirino
*/
-@Mojo( name = "shade", defaultPhase = LifecyclePhase.PACKAGE, threadSafe =
false,
+@Mojo( name = "shade", defaultPhase = LifecyclePhase.PACKAGE, threadSafe =
true,
requiresDependencyResolution = ResolutionScope.RUNTIME )
public class ShadeMojo
extends AbstractMojo
@@ -295,6 +295,16 @@ public class ShadeMojo
private File dependencyReducedPomLocation;
/**
+ * Create a dependency-reduced POM in ${basedir}/drp-UNIQUE.pom. This
avoids build collisions
+ * of parallel builds without moving the dependency-reduced POM to a
different directory.
+ * The property maven.shade.dependency-reduced-pom is set to the generated
filename.
+ *
+ * @since 1.7.2
+ */
+ @Parameter
+ private boolean generateUniqueDependencyReducedPom;
+
+ /**
* When true, dependencies are kept in the pom but with scope 'provided';
when false,
* the dependency is removed.
*/
@@ -868,10 +878,18 @@ public class ShadeMojo
model.setDependencies( dependencies );
- if ( dependencyReducedPomLocation == null )
+ if ( generateUniqueDependencyReducedPom )
{
- // MSHADE-123: We can't default to 'target' because it
messes up uses of ${project.basedir}
- dependencyReducedPomLocation = new File(
project.getBasedir(), "dependency-reduced-pom.xml" );
+ dependencyReducedPomLocation = File.createTempFile(
"dependency-reduced-pom", "xml", project.getBasedir() );
+ project.getProperties().setProperty(
"maven.shade.dependency-reduced-pom",
dependencyReducedPomLocation.getAbsolutePath() );
+ }
+ else
+ {
+ if ( dependencyReducedPomLocation == null )
+ {
+ // MSHADE-123: We can't default to 'target' because it
messes up uses of ${project.basedir}
+ dependencyReducedPomLocation = new File(
project.getBasedir(), "dependency-reduced-pom.xml" );
+ }
}
File f = dependencyReducedPomLocation;