Author: gboue
Date: Sat Jul 1 07:32:06 2017
New Revision: 1800481
URL: http://svn.apache.org/viewvc?rev=1800481&view=rev
Log:
[MDEP-573] "purge-local-repository -Dinclude" does not work as described
Due to requiresProject = false, we need to loop over the projects in the
reactor ourselves if the mojo was launched from the CLI. This requires several
changes:
- Dependency artifacts do not exist anymore so we work on dependencies and
resolve them if necessary.
- Dependencies on projects in the reactor are ignored (just like in the case
of a single project, the project itself is not purged).
- Artifacts already purged do not need to be purged again: if they were
re-resolved then no need to purge and re-resolve them a second time; if they
were not re-resolved then keep them deleted.
- Updating to maven-artifact-transfer 0.9.2-SNAPSHOT to make added ITs work on
Maven 3.0.x.
Added:
maven/plugins/trunk/maven-dependency-plugin/src/it/projects/purge-local-repository-bad-dep/
maven/plugins/trunk/maven-dependency-plugin/src/it/projects/purge-local-repository-bad-dep/invoker.properties
(with props)
maven/plugins/trunk/maven-dependency-plugin/src/it/projects/purge-local-repository-bad-dep/pom.xml
(with props)
maven/plugins/trunk/maven-dependency-plugin/src/it/projects/purge-local-repository-bad-dep/verify.groovy
(with props)
maven/plugins/trunk/maven-dependency-plugin/src/it/projects/purge-local-repository-include/
maven/plugins/trunk/maven-dependency-plugin/src/it/projects/purge-local-repository-include/invoker.properties
(with props)
maven/plugins/trunk/maven-dependency-plugin/src/it/projects/purge-local-repository-include/pom.xml
(with props)
maven/plugins/trunk/maven-dependency-plugin/src/it/projects/purge-local-repository-include/test.properties
(with props)
maven/plugins/trunk/maven-dependency-plugin/src/it/projects/purge-local-repository-include/verify.groovy
(with props)
maven/plugins/trunk/maven-dependency-plugin/src/it/projects/purge-local-repository-multi-module/
maven/plugins/trunk/maven-dependency-plugin/src/it/projects/purge-local-repository-multi-module-execution/
maven/plugins/trunk/maven-dependency-plugin/src/it/projects/purge-local-repository-multi-module-execution/child1/
maven/plugins/trunk/maven-dependency-plugin/src/it/projects/purge-local-repository-multi-module-execution/child1/pom.xml
(with props)
maven/plugins/trunk/maven-dependency-plugin/src/it/projects/purge-local-repository-multi-module-execution/child2/
maven/plugins/trunk/maven-dependency-plugin/src/it/projects/purge-local-repository-multi-module-execution/child2/pom.xml
(with props)
maven/plugins/trunk/maven-dependency-plugin/src/it/projects/purge-local-repository-multi-module-execution/pom.xml
(with props)
maven/plugins/trunk/maven-dependency-plugin/src/it/projects/purge-local-repository-multi-module-execution/setup.bsh
(with props)
maven/plugins/trunk/maven-dependency-plugin/src/it/projects/purge-local-repository-multi-module-execution/test.properties
(with props)
maven/plugins/trunk/maven-dependency-plugin/src/it/projects/purge-local-repository-multi-module-execution/verify.bsh
(with props)
maven/plugins/trunk/maven-dependency-plugin/src/it/projects/purge-local-repository-multi-module/child1/
maven/plugins/trunk/maven-dependency-plugin/src/it/projects/purge-local-repository-multi-module/child1/pom.xml
(with props)
maven/plugins/trunk/maven-dependency-plugin/src/it/projects/purge-local-repository-multi-module/child2/
maven/plugins/trunk/maven-dependency-plugin/src/it/projects/purge-local-repository-multi-module/child2/pom.xml
(with props)
maven/plugins/trunk/maven-dependency-plugin/src/it/projects/purge-local-repository-multi-module/invoker.properties
(with props)
maven/plugins/trunk/maven-dependency-plugin/src/it/projects/purge-local-repository-multi-module/pom.xml
(with props)
maven/plugins/trunk/maven-dependency-plugin/src/it/projects/purge-local-repository-multi-module/setup.bsh
(with props)
maven/plugins/trunk/maven-dependency-plugin/src/it/projects/purge-local-repository-multi-module/test.properties
(with props)
maven/plugins/trunk/maven-dependency-plugin/src/it/projects/purge-local-repository-multi-module/verify.bsh
(with props)
maven/plugins/trunk/maven-dependency-plugin/src/test/resources/unit/skip-test/plugin-purge-local-repository-config.xml
(with props)
Modified:
maven/plugins/trunk/maven-dependency-plugin/pom.xml
maven/plugins/trunk/maven-dependency-plugin/src/main/java/org/apache/maven/plugins/dependency/PurgeLocalRepositoryMojo.java
maven/plugins/trunk/maven-dependency-plugin/src/test/java/org/apache/maven/plugins/dependency/TestSkip.java
Modified: maven/plugins/trunk/maven-dependency-plugin/pom.xml
URL:
http://svn.apache.org/viewvc/maven/plugins/trunk/maven-dependency-plugin/pom.xml?rev=1800481&r1=1800480&r2=1800481&view=diff
==============================================================================
--- maven/plugins/trunk/maven-dependency-plugin/pom.xml (original)
+++ maven/plugins/trunk/maven-dependency-plugin/pom.xml Sat Jul 1 07:32:06 2017
@@ -222,7 +222,7 @@ under the License.
<dependency>
<groupId>org.apache.maven.shared</groupId>
<artifactId>maven-artifact-transfer</artifactId>
- <version>0.9.1</version>
+ <version>0.9.2-SNAPSHOT</version>
</dependency>
<dependency>
Added:
maven/plugins/trunk/maven-dependency-plugin/src/it/projects/purge-local-repository-bad-dep/invoker.properties
URL:
http://svn.apache.org/viewvc/maven/plugins/trunk/maven-dependency-plugin/src/it/projects/purge-local-repository-bad-dep/invoker.properties?rev=1800481&view=auto
==============================================================================
---
maven/plugins/trunk/maven-dependency-plugin/src/it/projects/purge-local-repository-bad-dep/invoker.properties
(added)
+++
maven/plugins/trunk/maven-dependency-plugin/src/it/projects/purge-local-repository-bad-dep/invoker.properties
Sat Jul 1 07:32:06 2017
@@ -0,0 +1,20 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+invoker.goals =
${project.groupId}:${project.artifactId}:${project.version}:purge-local-repository
+# [MNG-5366] Does not work in Maven >= 3.0.4 due to the resolveAlways
operation not correctly forcing a new download
+invoker.maven.version = !3.0.4,!3.0.5,!3.1.0,!3.1.1,!3.2.1,!3.2.2,!3.2.3
Propchange:
maven/plugins/trunk/maven-dependency-plugin/src/it/projects/purge-local-repository-bad-dep/invoker.properties
------------------------------------------------------------------------------
svn:eol-style = native
Propchange:
maven/plugins/trunk/maven-dependency-plugin/src/it/projects/purge-local-repository-bad-dep/invoker.properties
------------------------------------------------------------------------------
svn:keywords = Author Date Id Revision
Added:
maven/plugins/trunk/maven-dependency-plugin/src/it/projects/purge-local-repository-bad-dep/pom.xml
URL:
http://svn.apache.org/viewvc/maven/plugins/trunk/maven-dependency-plugin/src/it/projects/purge-local-repository-bad-dep/pom.xml?rev=1800481&view=auto
==============================================================================
---
maven/plugins/trunk/maven-dependency-plugin/src/it/projects/purge-local-repository-bad-dep/pom.xml
(added)
+++
maven/plugins/trunk/maven-dependency-plugin/src/it/projects/purge-local-repository-bad-dep/pom.xml
Sat Jul 1 07:32:06 2017
@@ -0,0 +1,47 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+ ~ Licensed to the Apache Software Foundation (ASF) under one
+ ~ or more contributor license agreements. See the NOTICE file
+ ~ distributed with this work for additional information
+ ~ regarding copyright ownership. The ASF licenses this file
+ ~ to you under the Apache License, Version 2.0 (the
+ ~ "License"); you may not use this file except in compliance
+ ~ with the License. You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing,
+ ~ software distributed under the License is distributed on an
+ ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ ~ KIND, either express or implied. See the License for the
+ ~ specific language governing permissions and limitations
+ ~ under the License.
+ -->
+
+<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.apache.maven.its.dependency</groupId>
+ <artifactId>purge-local-repository-bad-dep</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ <description>
+ Tests that purge-local-repository doesn't fail when it encounters a
dependency that it can't resolve
+ </description>
+ <properties>
+ <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+ </properties>
+ <dependencies>
+ <dependency>
+ <groupId>org.apache.maven.its.dependency</groupId>
+ <artifactId>i-do-not-exist</artifactId>
+ <version>1.0</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.maven.its.dependency</groupId>
+ <artifactId>purge-local-repository</artifactId>
+ <version>1.0</version>
+ </dependency>
+ </dependencies>
+</project>
Propchange:
maven/plugins/trunk/maven-dependency-plugin/src/it/projects/purge-local-repository-bad-dep/pom.xml
------------------------------------------------------------------------------
svn:eol-style = native
Propchange:
maven/plugins/trunk/maven-dependency-plugin/src/it/projects/purge-local-repository-bad-dep/pom.xml
------------------------------------------------------------------------------
svn:keywords = Author Date Id Revision
Added:
maven/plugins/trunk/maven-dependency-plugin/src/it/projects/purge-local-repository-bad-dep/verify.groovy
URL:
http://svn.apache.org/viewvc/maven/plugins/trunk/maven-dependency-plugin/src/it/projects/purge-local-repository-bad-dep/verify.groovy?rev=1800481&view=auto
==============================================================================
---
maven/plugins/trunk/maven-dependency-plugin/src/it/projects/purge-local-repository-bad-dep/verify.groovy
(added)
+++
maven/plugins/trunk/maven-dependency-plugin/src/it/projects/purge-local-repository-bad-dep/verify.groovy
Sat Jul 1 07:32:06 2017
@@ -0,0 +1,37 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+void checkFilePresence( String path )
+{
+ File depJar = new File( localRepositoryPath, path );
+ if ( !depJar.exists() )
+ {
+ throw new Exception( "Direct dependency jar was not re-resolved: " +
depJar );
+ }
+}
+
+checkFilePresence(
"org/apache/maven/its/dependency/purge-local-repository/1.0/purge-local-repository-1.0.jar"
);
+checkFilePresence(
"org/apache/maven/its/dependency/purge-local-repository/1.0/purge-local-repository-1.0.pom"
);
+
+String buildLog = new File( basedir, "build.log" ).getText( "UTF-8" );
+assert buildLog.contains( 'Unable to resolve artifact:
org.apache.maven.its.dependency:i-do-not-exist:jar:1.0' );
+assert buildLog.contains( 'Purging artifact:
org.apache.maven.its.dependency:purge-local-repository:jar:1.0' );
+assert buildLog.contains( 'Resolving artifact:
org.apache.maven.its.dependency:purge-local-repository:jar:1.0' );
+
+return true;
Propchange:
maven/plugins/trunk/maven-dependency-plugin/src/it/projects/purge-local-repository-bad-dep/verify.groovy
------------------------------------------------------------------------------
svn:eol-style = native
Propchange:
maven/plugins/trunk/maven-dependency-plugin/src/it/projects/purge-local-repository-bad-dep/verify.groovy
------------------------------------------------------------------------------
svn:keywords = Author Date Id Revision
Added:
maven/plugins/trunk/maven-dependency-plugin/src/it/projects/purge-local-repository-include/invoker.properties
URL:
http://svn.apache.org/viewvc/maven/plugins/trunk/maven-dependency-plugin/src/it/projects/purge-local-repository-include/invoker.properties?rev=1800481&view=auto
==============================================================================
---
maven/plugins/trunk/maven-dependency-plugin/src/it/projects/purge-local-repository-include/invoker.properties
(added)
+++
maven/plugins/trunk/maven-dependency-plugin/src/it/projects/purge-local-repository-include/invoker.properties
Sat Jul 1 07:32:06 2017
@@ -0,0 +1,18 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+invoker.goals =
${project.groupId}:${project.artifactId}:${project.version}:resolve
${project.groupId}:${project.artifactId}:${project.version}:purge-local-repository
Propchange:
maven/plugins/trunk/maven-dependency-plugin/src/it/projects/purge-local-repository-include/invoker.properties
------------------------------------------------------------------------------
svn:eol-style = native
Propchange:
maven/plugins/trunk/maven-dependency-plugin/src/it/projects/purge-local-repository-include/invoker.properties
------------------------------------------------------------------------------
svn:keywords = Author Date Id Revision
Added:
maven/plugins/trunk/maven-dependency-plugin/src/it/projects/purge-local-repository-include/pom.xml
URL:
http://svn.apache.org/viewvc/maven/plugins/trunk/maven-dependency-plugin/src/it/projects/purge-local-repository-include/pom.xml?rev=1800481&view=auto
==============================================================================
---
maven/plugins/trunk/maven-dependency-plugin/src/it/projects/purge-local-repository-include/pom.xml
(added)
+++
maven/plugins/trunk/maven-dependency-plugin/src/it/projects/purge-local-repository-include/pom.xml
Sat Jul 1 07:32:06 2017
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+ ~ Licensed to the Apache Software Foundation (ASF) under one
+ ~ or more contributor license agreements. See the NOTICE file
+ ~ distributed with this work for additional information
+ ~ regarding copyright ownership. The ASF licenses this file
+ ~ to you under the Apache License, Version 2.0 (the
+ ~ "License"); you may not use this file except in compliance
+ ~ with the License. You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing,
+ ~ software distributed under the License is distributed on an
+ ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ ~ KIND, either express or implied. See the License for the
+ ~ specific language governing permissions and limitations
+ ~ under the License.
+ -->
+
+<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.apache.maven.its.dependency</groupId>
+ <artifactId>purge-local-repository-include</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ <description>Tests that purge-local-repository only purges included
artifacts</description>
+ <properties>
+ <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+ </properties>
+ <dependencies>
+ <dependency>
+ <groupId>org.apache.maven.its.dependency</groupId>
+ <artifactId>purge-local-repository</artifactId>
+ <version>1.0</version>
+ </dependency>
+ </dependencies>
+</project>
Propchange:
maven/plugins/trunk/maven-dependency-plugin/src/it/projects/purge-local-repository-include/pom.xml
------------------------------------------------------------------------------
svn:eol-style = native
Propchange:
maven/plugins/trunk/maven-dependency-plugin/src/it/projects/purge-local-repository-include/pom.xml
------------------------------------------------------------------------------
svn:keywords = Author Date Id Revision
Added:
maven/plugins/trunk/maven-dependency-plugin/src/it/projects/purge-local-repository-include/test.properties
URL:
http://svn.apache.org/viewvc/maven/plugins/trunk/maven-dependency-plugin/src/it/projects/purge-local-repository-include/test.properties?rev=1800481&view=auto
==============================================================================
---
maven/plugins/trunk/maven-dependency-plugin/src/it/projects/purge-local-repository-include/test.properties
(added)
+++
maven/plugins/trunk/maven-dependency-plugin/src/it/projects/purge-local-repository-include/test.properties
Sat Jul 1 07:32:06 2017
@@ -0,0 +1,19 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+include = org.apache.maven.its.dependency:purge-local-repository-2
+reResolve = false
Propchange:
maven/plugins/trunk/maven-dependency-plugin/src/it/projects/purge-local-repository-include/test.properties
------------------------------------------------------------------------------
svn:eol-style = native
Propchange:
maven/plugins/trunk/maven-dependency-plugin/src/it/projects/purge-local-repository-include/test.properties
------------------------------------------------------------------------------
svn:keywords = Author Date Id Revision
Added:
maven/plugins/trunk/maven-dependency-plugin/src/it/projects/purge-local-repository-include/verify.groovy
URL:
http://svn.apache.org/viewvc/maven/plugins/trunk/maven-dependency-plugin/src/it/projects/purge-local-repository-include/verify.groovy?rev=1800481&view=auto
==============================================================================
---
maven/plugins/trunk/maven-dependency-plugin/src/it/projects/purge-local-repository-include/verify.groovy
(added)
+++
maven/plugins/trunk/maven-dependency-plugin/src/it/projects/purge-local-repository-include/verify.groovy
Sat Jul 1 07:32:06 2017
@@ -0,0 +1,48 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+void checkFilePresence( String path )
+{
+ File depJar = new File( localRepositoryPath, path );
+ if ( !depJar.exists() )
+ {
+ throw new Exception( "Dependency jar was not re-resolved: " + depJar );
+ }
+}
+
+void checkFileAbsence( String path )
+{
+ File depJar = new File( localRepositoryPath, path );
+ if ( depJar.exists() )
+ {
+ throw new Exception( "Dependency jar was not purged: " + depJar );
+ }
+}
+
+checkFilePresence(
"org/apache/maven/its/dependency/purge-local-repository/1.0/purge-local-repository-1.0.jar"
);
+checkFilePresence(
"org/apache/maven/its/dependency/purge-local-repository/1.0/purge-local-repository-1.0.pom"
);
+
+checkFileAbsence(
"org/apache/maven/its/dependency/purge-local-repository-2/1.0/purge-local-repository-2-1.0.jar"
);
+checkFileAbsence(
"org/apache/maven/its/dependency/purge-local-repository-2/1.0/purge-local-repository-2-1.0.pom"
);
+
+String buildLog = new File( basedir, "build.log" ).getText( "UTF-8" );
+assert !buildLog.contains( 'Purging artifact:
org.apache.maven.its.dependency:purge-local-repository:jar:1.0' );
+assert buildLog.contains( 'Purging artifact:
org.apache.maven.its.dependency:purge-local-repository-2:jar:1.0' );
+
+return true;
Propchange:
maven/plugins/trunk/maven-dependency-plugin/src/it/projects/purge-local-repository-include/verify.groovy
------------------------------------------------------------------------------
svn:eol-style = native
Propchange:
maven/plugins/trunk/maven-dependency-plugin/src/it/projects/purge-local-repository-include/verify.groovy
------------------------------------------------------------------------------
svn:keywords = Author Date Id Revision
Added:
maven/plugins/trunk/maven-dependency-plugin/src/it/projects/purge-local-repository-multi-module-execution/child1/pom.xml
URL:
http://svn.apache.org/viewvc/maven/plugins/trunk/maven-dependency-plugin/src/it/projects/purge-local-repository-multi-module-execution/child1/pom.xml?rev=1800481&view=auto
==============================================================================
---
maven/plugins/trunk/maven-dependency-plugin/src/it/projects/purge-local-repository-multi-module-execution/child1/pom.xml
(added)
+++
maven/plugins/trunk/maven-dependency-plugin/src/it/projects/purge-local-repository-multi-module-execution/child1/pom.xml
Sat Jul 1 07:32:06 2017
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+ ~ Licensed to the Apache Software Foundation (ASF) under one
+ ~ or more contributor license agreements. See the NOTICE file
+ ~ distributed with this work for additional information
+ ~ regarding copyright ownership. The ASF licenses this file
+ ~ to you under the Apache License, Version 2.0 (the
+ ~ "License"); you may not use this file except in compliance
+ ~ with the License. You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing,
+ ~ software distributed under the License is distributed on an
+ ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ ~ KIND, either express or implied. See the License for the
+ ~ specific language governing permissions and limitations
+ ~ under the License.
+ -->
+
+<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>
+ <parent>
+ <groupId>org.apache.maven.its.dependency</groupId>
+ <artifactId>purge-local-repository-multi-module-execution</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ </parent>
+ <artifactId>child1</artifactId>
+ <dependencies>
+ <dependency>
+ <groupId>org.apache.maven.its.dependency</groupId>
+ <artifactId>purged-a</artifactId>
+ <version>1.0</version>
+ </dependency>
+ </dependencies>
+</project>
Propchange:
maven/plugins/trunk/maven-dependency-plugin/src/it/projects/purge-local-repository-multi-module-execution/child1/pom.xml
------------------------------------------------------------------------------
svn:eol-style = native
Propchange:
maven/plugins/trunk/maven-dependency-plugin/src/it/projects/purge-local-repository-multi-module-execution/child1/pom.xml
------------------------------------------------------------------------------
svn:keywords = Author Date Id Revision
Added:
maven/plugins/trunk/maven-dependency-plugin/src/it/projects/purge-local-repository-multi-module-execution/child2/pom.xml
URL:
http://svn.apache.org/viewvc/maven/plugins/trunk/maven-dependency-plugin/src/it/projects/purge-local-repository-multi-module-execution/child2/pom.xml?rev=1800481&view=auto
==============================================================================
---
maven/plugins/trunk/maven-dependency-plugin/src/it/projects/purge-local-repository-multi-module-execution/child2/pom.xml
(added)
+++
maven/plugins/trunk/maven-dependency-plugin/src/it/projects/purge-local-repository-multi-module-execution/child2/pom.xml
Sat Jul 1 07:32:06 2017
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+ ~ Licensed to the Apache Software Foundation (ASF) under one
+ ~ or more contributor license agreements. See the NOTICE file
+ ~ distributed with this work for additional information
+ ~ regarding copyright ownership. The ASF licenses this file
+ ~ to you under the Apache License, Version 2.0 (the
+ ~ "License"); you may not use this file except in compliance
+ ~ with the License. You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing,
+ ~ software distributed under the License is distributed on an
+ ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ ~ KIND, either express or implied. See the License for the
+ ~ specific language governing permissions and limitations
+ ~ under the License.
+ -->
+
+<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>
+ <parent>
+ <groupId>org.apache.maven.its.dependency</groupId>
+ <artifactId>purge-local-repository-multi-module-execution</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ </parent>
+ <artifactId>child2</artifactId>
+ <dependencies>
+ <dependency>
+ <groupId>org.apache.maven.its.dependency</groupId>
+ <artifactId>purged-b</artifactId>
+ <version>1.0</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.maven.its.dependency</groupId>
+ <artifactId>child1</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ </dependencies>
+</project>
Propchange:
maven/plugins/trunk/maven-dependency-plugin/src/it/projects/purge-local-repository-multi-module-execution/child2/pom.xml
------------------------------------------------------------------------------
svn:eol-style = native
Propchange:
maven/plugins/trunk/maven-dependency-plugin/src/it/projects/purge-local-repository-multi-module-execution/child2/pom.xml
------------------------------------------------------------------------------
svn:keywords = Author Date Id Revision
Added:
maven/plugins/trunk/maven-dependency-plugin/src/it/projects/purge-local-repository-multi-module-execution/pom.xml
URL:
http://svn.apache.org/viewvc/maven/plugins/trunk/maven-dependency-plugin/src/it/projects/purge-local-repository-multi-module-execution/pom.xml?rev=1800481&view=auto
==============================================================================
---
maven/plugins/trunk/maven-dependency-plugin/src/it/projects/purge-local-repository-multi-module-execution/pom.xml
(added)
+++
maven/plugins/trunk/maven-dependency-plugin/src/it/projects/purge-local-repository-multi-module-execution/pom.xml
Sat Jul 1 07:32:06 2017
@@ -0,0 +1,58 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+ ~ Licensed to the Apache Software Foundation (ASF) under one
+ ~ or more contributor license agreements. See the NOTICE file
+ ~ distributed with this work for additional information
+ ~ regarding copyright ownership. The ASF licenses this file
+ ~ to you under the Apache License, Version 2.0 (the
+ ~ "License"); you may not use this file except in compliance
+ ~ with the License. You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing,
+ ~ software distributed under the License is distributed on an
+ ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ ~ KIND, either express or implied. See the License for the
+ ~ specific language governing permissions and limitations
+ ~ under the License.
+ -->
+
+<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.apache.maven.its.dependency</groupId>
+ <artifactId>purge-local-repository-multi-module-execution</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ <packaging>pom</packaging>
+ <description>
+ Test dependency:purge-local-repository in a multi-module build when the
goal is declared in an execution in the POM
+ </description>
+ <properties>
+ <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+ </properties>
+ <modules>
+ <module>child1</module>
+ <module>child2</module>
+ </modules>
+ <build>
+ <plugins>
+ <plugin>
+ <artifactId>maven-dependency-plugin</artifactId>
+ <version>@project.version@</version>
+ <executions>
+ <execution>
+ <id>purge-local-repo</id>
+ <phase>validate</phase>
+ <goals>
+ <goal>purge-local-repository</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+</project>
Propchange:
maven/plugins/trunk/maven-dependency-plugin/src/it/projects/purge-local-repository-multi-module-execution/pom.xml
------------------------------------------------------------------------------
svn:eol-style = native
Propchange:
maven/plugins/trunk/maven-dependency-plugin/src/it/projects/purge-local-repository-multi-module-execution/pom.xml
------------------------------------------------------------------------------
svn:keywords = Author Date Id Revision
Added:
maven/plugins/trunk/maven-dependency-plugin/src/it/projects/purge-local-repository-multi-module-execution/setup.bsh
URL:
http://svn.apache.org/viewvc/maven/plugins/trunk/maven-dependency-plugin/src/it/projects/purge-local-repository-multi-module-execution/setup.bsh?rev=1800481&view=auto
==============================================================================
---
maven/plugins/trunk/maven-dependency-plugin/src/it/projects/purge-local-repository-multi-module-execution/setup.bsh
(added)
+++
maven/plugins/trunk/maven-dependency-plugin/src/it/projects/purge-local-repository-multi-module-execution/setup.bsh
Sat Jul 1 07:32:06 2017
@@ -0,0 +1,35 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+import java.io.File;
+
+void createJar( String artifactId )
+{
+ File purgedJar = new File( localRepositoryPath,
"org/apache/maven/its/dependency/" + artifactId + "/1.0/" + artifactId +
"-1.0.jar" );
+
+ purgedJar.getParentFile().mkdirs();
+ purgedJar.createNewFile();
+
+ System.out.println( "Created dummy JAR " + purgedJar );
+}
+
+createJar( "purged-a" );
+createJar( "purged-b" );
+
+return true;
Propchange:
maven/plugins/trunk/maven-dependency-plugin/src/it/projects/purge-local-repository-multi-module-execution/setup.bsh
------------------------------------------------------------------------------
svn:eol-style = native
Propchange:
maven/plugins/trunk/maven-dependency-plugin/src/it/projects/purge-local-repository-multi-module-execution/setup.bsh
------------------------------------------------------------------------------
svn:keywords = Author Date Id Revision
Added:
maven/plugins/trunk/maven-dependency-plugin/src/it/projects/purge-local-repository-multi-module-execution/test.properties
URL:
http://svn.apache.org/viewvc/maven/plugins/trunk/maven-dependency-plugin/src/it/projects/purge-local-repository-multi-module-execution/test.properties?rev=1800481&view=auto
==============================================================================
---
maven/plugins/trunk/maven-dependency-plugin/src/it/projects/purge-local-repository-multi-module-execution/test.properties
(added)
+++
maven/plugins/trunk/maven-dependency-plugin/src/it/projects/purge-local-repository-multi-module-execution/test.properties
Sat Jul 1 07:32:06 2017
@@ -0,0 +1,18 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+reResolve = false
Propchange:
maven/plugins/trunk/maven-dependency-plugin/src/it/projects/purge-local-repository-multi-module-execution/test.properties
------------------------------------------------------------------------------
svn:eol-style = native
Propchange:
maven/plugins/trunk/maven-dependency-plugin/src/it/projects/purge-local-repository-multi-module-execution/test.properties
------------------------------------------------------------------------------
svn:keywords = Author Date Id Revision
Added:
maven/plugins/trunk/maven-dependency-plugin/src/it/projects/purge-local-repository-multi-module-execution/verify.bsh
URL:
http://svn.apache.org/viewvc/maven/plugins/trunk/maven-dependency-plugin/src/it/projects/purge-local-repository-multi-module-execution/verify.bsh?rev=1800481&view=auto
==============================================================================
---
maven/plugins/trunk/maven-dependency-plugin/src/it/projects/purge-local-repository-multi-module-execution/verify.bsh
(added)
+++
maven/plugins/trunk/maven-dependency-plugin/src/it/projects/purge-local-repository-multi-module-execution/verify.bsh
Sat Jul 1 07:32:06 2017
@@ -0,0 +1,37 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+import java.io.File;
+
+void checkFilePurged( String artifactId )
+{
+ File purgedJar = new File( localRepositoryPath,
"org/apache/maven/its/dependency/" + artifactId + "/1.0/" + artifactId +
"-1.0.jar" );
+
+ System.out.println( "Checking for absence of dummy JAR " + purgedJar );
+
+ if ( purgedJar.exists() )
+ {
+ throw new Exception( "JAR was not purged: " + purgedJar );
+ }
+}
+
+checkFilePurged( "purged-a" );
+checkFilePurged( "purged-b" );
+
+return true;
Propchange:
maven/plugins/trunk/maven-dependency-plugin/src/it/projects/purge-local-repository-multi-module-execution/verify.bsh
------------------------------------------------------------------------------
svn:eol-style = native
Propchange:
maven/plugins/trunk/maven-dependency-plugin/src/it/projects/purge-local-repository-multi-module-execution/verify.bsh
------------------------------------------------------------------------------
svn:keywords = Author Date Id Revision
Added:
maven/plugins/trunk/maven-dependency-plugin/src/it/projects/purge-local-repository-multi-module/child1/pom.xml
URL:
http://svn.apache.org/viewvc/maven/plugins/trunk/maven-dependency-plugin/src/it/projects/purge-local-repository-multi-module/child1/pom.xml?rev=1800481&view=auto
==============================================================================
---
maven/plugins/trunk/maven-dependency-plugin/src/it/projects/purge-local-repository-multi-module/child1/pom.xml
(added)
+++
maven/plugins/trunk/maven-dependency-plugin/src/it/projects/purge-local-repository-multi-module/child1/pom.xml
Sat Jul 1 07:32:06 2017
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+ ~ Licensed to the Apache Software Foundation (ASF) under one
+ ~ or more contributor license agreements. See the NOTICE file
+ ~ distributed with this work for additional information
+ ~ regarding copyright ownership. The ASF licenses this file
+ ~ to you under the Apache License, Version 2.0 (the
+ ~ "License"); you may not use this file except in compliance
+ ~ with the License. You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing,
+ ~ software distributed under the License is distributed on an
+ ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ ~ KIND, either express or implied. See the License for the
+ ~ specific language governing permissions and limitations
+ ~ under the License.
+ -->
+
+<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>
+ <parent>
+ <groupId>org.apache.maven.its.dependency</groupId>
+ <artifactId>purge-local-repository-multi-module</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ </parent>
+ <artifactId>child1</artifactId>
+ <dependencies>
+ <dependency>
+ <groupId>org.apache.maven.its.dependency</groupId>
+ <artifactId>purged-a</artifactId>
+ <version>1.0</version>
+ </dependency>
+ </dependencies>
+</project>
Propchange:
maven/plugins/trunk/maven-dependency-plugin/src/it/projects/purge-local-repository-multi-module/child1/pom.xml
------------------------------------------------------------------------------
svn:eol-style = native
Propchange:
maven/plugins/trunk/maven-dependency-plugin/src/it/projects/purge-local-repository-multi-module/child1/pom.xml
------------------------------------------------------------------------------
svn:keywords = Author Date Id Revision
Added:
maven/plugins/trunk/maven-dependency-plugin/src/it/projects/purge-local-repository-multi-module/child2/pom.xml
URL:
http://svn.apache.org/viewvc/maven/plugins/trunk/maven-dependency-plugin/src/it/projects/purge-local-repository-multi-module/child2/pom.xml?rev=1800481&view=auto
==============================================================================
---
maven/plugins/trunk/maven-dependency-plugin/src/it/projects/purge-local-repository-multi-module/child2/pom.xml
(added)
+++
maven/plugins/trunk/maven-dependency-plugin/src/it/projects/purge-local-repository-multi-module/child2/pom.xml
Sat Jul 1 07:32:06 2017
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+ ~ Licensed to the Apache Software Foundation (ASF) under one
+ ~ or more contributor license agreements. See the NOTICE file
+ ~ distributed with this work for additional information
+ ~ regarding copyright ownership. The ASF licenses this file
+ ~ to you under the Apache License, Version 2.0 (the
+ ~ "License"); you may not use this file except in compliance
+ ~ with the License. You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing,
+ ~ software distributed under the License is distributed on an
+ ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ ~ KIND, either express or implied. See the License for the
+ ~ specific language governing permissions and limitations
+ ~ under the License.
+ -->
+
+<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>
+ <parent>
+ <groupId>org.apache.maven.its.dependency</groupId>
+ <artifactId>purge-local-repository-multi-module</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ </parent>
+ <artifactId>child2</artifactId>
+ <dependencies>
+ <dependency>
+ <groupId>org.apache.maven.its.dependency</groupId>
+ <artifactId>purged-b</artifactId>
+ <version>1.0</version>
+ </dependency>
+ <dependency>
+ <groupId>${project.groupId}</groupId>
+ <artifactId>child1</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ </dependencies>
+</project>
Propchange:
maven/plugins/trunk/maven-dependency-plugin/src/it/projects/purge-local-repository-multi-module/child2/pom.xml
------------------------------------------------------------------------------
svn:eol-style = native
Propchange:
maven/plugins/trunk/maven-dependency-plugin/src/it/projects/purge-local-repository-multi-module/child2/pom.xml
------------------------------------------------------------------------------
svn:keywords = Author Date Id Revision
Added:
maven/plugins/trunk/maven-dependency-plugin/src/it/projects/purge-local-repository-multi-module/invoker.properties
URL:
http://svn.apache.org/viewvc/maven/plugins/trunk/maven-dependency-plugin/src/it/projects/purge-local-repository-multi-module/invoker.properties?rev=1800481&view=auto
==============================================================================
---
maven/plugins/trunk/maven-dependency-plugin/src/it/projects/purge-local-repository-multi-module/invoker.properties
(added)
+++
maven/plugins/trunk/maven-dependency-plugin/src/it/projects/purge-local-repository-multi-module/invoker.properties
Sat Jul 1 07:32:06 2017
@@ -0,0 +1,18 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+invoker.goals =
${project.groupId}:${project.artifactId}:${project.version}:purge-local-repository
Propchange:
maven/plugins/trunk/maven-dependency-plugin/src/it/projects/purge-local-repository-multi-module/invoker.properties
------------------------------------------------------------------------------
svn:eol-style = native
Propchange:
maven/plugins/trunk/maven-dependency-plugin/src/it/projects/purge-local-repository-multi-module/invoker.properties
------------------------------------------------------------------------------
svn:keywords = Author Date Id Revision
Added:
maven/plugins/trunk/maven-dependency-plugin/src/it/projects/purge-local-repository-multi-module/pom.xml
URL:
http://svn.apache.org/viewvc/maven/plugins/trunk/maven-dependency-plugin/src/it/projects/purge-local-repository-multi-module/pom.xml?rev=1800481&view=auto
==============================================================================
---
maven/plugins/trunk/maven-dependency-plugin/src/it/projects/purge-local-repository-multi-module/pom.xml
(added)
+++
maven/plugins/trunk/maven-dependency-plugin/src/it/projects/purge-local-repository-multi-module/pom.xml
Sat Jul 1 07:32:06 2017
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+ ~ Licensed to the Apache Software Foundation (ASF) under one
+ ~ or more contributor license agreements. See the NOTICE file
+ ~ distributed with this work for additional information
+ ~ regarding copyright ownership. The ASF licenses this file
+ ~ to you under the Apache License, Version 2.0 (the
+ ~ "License"); you may not use this file except in compliance
+ ~ with the License. You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing,
+ ~ software distributed under the License is distributed on an
+ ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ ~ KIND, either express or implied. See the License for the
+ ~ specific language governing permissions and limitations
+ ~ under the License.
+ -->
+
+<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.apache.maven.its.dependency</groupId>
+ <artifactId>purge-local-repository-multi-module</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ <packaging>pom</packaging>
+ <description>Test dependency:purge-local-repository in a multi-module
build</description>
+ <properties>
+ <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+ </properties>
+ <modules>
+ <module>child1</module>
+ <module>child2</module>
+ </modules>
+</project>
Propchange:
maven/plugins/trunk/maven-dependency-plugin/src/it/projects/purge-local-repository-multi-module/pom.xml
------------------------------------------------------------------------------
svn:eol-style = native
Propchange:
maven/plugins/trunk/maven-dependency-plugin/src/it/projects/purge-local-repository-multi-module/pom.xml
------------------------------------------------------------------------------
svn:keywords = Author Date Id Revision
Added:
maven/plugins/trunk/maven-dependency-plugin/src/it/projects/purge-local-repository-multi-module/setup.bsh
URL:
http://svn.apache.org/viewvc/maven/plugins/trunk/maven-dependency-plugin/src/it/projects/purge-local-repository-multi-module/setup.bsh?rev=1800481&view=auto
==============================================================================
---
maven/plugins/trunk/maven-dependency-plugin/src/it/projects/purge-local-repository-multi-module/setup.bsh
(added)
+++
maven/plugins/trunk/maven-dependency-plugin/src/it/projects/purge-local-repository-multi-module/setup.bsh
Sat Jul 1 07:32:06 2017
@@ -0,0 +1,35 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+import java.io.File;
+
+void createJar( String artifactId )
+{
+ File purgedJar = new File( localRepositoryPath,
"org/apache/maven/its/dependency/" + artifactId + "/1.0/" + artifactId +
"-1.0.jar" );
+
+ purgedJar.getParentFile().mkdirs();
+ purgedJar.createNewFile();
+
+ System.out.println( "Created dummy JAR " + purgedJar );
+}
+
+createJar( "purged-a" );
+createJar( "purged-b" );
+
+return true;
Propchange:
maven/plugins/trunk/maven-dependency-plugin/src/it/projects/purge-local-repository-multi-module/setup.bsh
------------------------------------------------------------------------------
svn:eol-style = native
Propchange:
maven/plugins/trunk/maven-dependency-plugin/src/it/projects/purge-local-repository-multi-module/setup.bsh
------------------------------------------------------------------------------
svn:keywords = Author Date Id Revision
Added:
maven/plugins/trunk/maven-dependency-plugin/src/it/projects/purge-local-repository-multi-module/test.properties
URL:
http://svn.apache.org/viewvc/maven/plugins/trunk/maven-dependency-plugin/src/it/projects/purge-local-repository-multi-module/test.properties?rev=1800481&view=auto
==============================================================================
---
maven/plugins/trunk/maven-dependency-plugin/src/it/projects/purge-local-repository-multi-module/test.properties
(added)
+++
maven/plugins/trunk/maven-dependency-plugin/src/it/projects/purge-local-repository-multi-module/test.properties
Sat Jul 1 07:32:06 2017
@@ -0,0 +1,18 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+reResolve = false
Propchange:
maven/plugins/trunk/maven-dependency-plugin/src/it/projects/purge-local-repository-multi-module/test.properties
------------------------------------------------------------------------------
svn:eol-style = native
Propchange:
maven/plugins/trunk/maven-dependency-plugin/src/it/projects/purge-local-repository-multi-module/test.properties
------------------------------------------------------------------------------
svn:keywords = Author Date Id Revision
Added:
maven/plugins/trunk/maven-dependency-plugin/src/it/projects/purge-local-repository-multi-module/verify.bsh
URL:
http://svn.apache.org/viewvc/maven/plugins/trunk/maven-dependency-plugin/src/it/projects/purge-local-repository-multi-module/verify.bsh?rev=1800481&view=auto
==============================================================================
---
maven/plugins/trunk/maven-dependency-plugin/src/it/projects/purge-local-repository-multi-module/verify.bsh
(added)
+++
maven/plugins/trunk/maven-dependency-plugin/src/it/projects/purge-local-repository-multi-module/verify.bsh
Sat Jul 1 07:32:06 2017
@@ -0,0 +1,37 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+import java.io.File;
+
+void checkFilePurged( String artifactId )
+{
+ File purgedJar = new File( localRepositoryPath,
"org/apache/maven/its/dependency/" + artifactId + "/1.0/" + artifactId +
"-1.0.jar" );
+
+ System.out.println( "Checking for absence of dummy JAR " + purgedJar );
+
+ if ( purgedJar.exists() )
+ {
+ throw new Exception( "JAR was not purged: " + purgedJar );
+ }
+}
+
+checkFilePurged( "purged-a" );
+checkFilePurged( "purged-b" );
+
+return true;
Propchange:
maven/plugins/trunk/maven-dependency-plugin/src/it/projects/purge-local-repository-multi-module/verify.bsh
------------------------------------------------------------------------------
svn:eol-style = native
Propchange:
maven/plugins/trunk/maven-dependency-plugin/src/it/projects/purge-local-repository-multi-module/verify.bsh
------------------------------------------------------------------------------
svn:keywords = Author Date Id Revision
Modified:
maven/plugins/trunk/maven-dependency-plugin/src/main/java/org/apache/maven/plugins/dependency/PurgeLocalRepositoryMojo.java
URL:
http://svn.apache.org/viewvc/maven/plugins/trunk/maven-dependency-plugin/src/main/java/org/apache/maven/plugins/dependency/PurgeLocalRepositoryMojo.java?rev=1800481&r1=1800480&r2=1800481&view=diff
==============================================================================
---
maven/plugins/trunk/maven-dependency-plugin/src/main/java/org/apache/maven/plugins/dependency/PurgeLocalRepositoryMojo.java
(original)
+++
maven/plugins/trunk/maven-dependency-plugin/src/main/java/org/apache/maven/plugins/dependency/PurgeLocalRepositoryMojo.java
Sat Jul 1 07:32:06 2017
@@ -23,26 +23,32 @@ import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Arrays;
+import java.util.HashSet;
import java.util.LinkedHashSet;
import java.util.List;
import java.util.Set;
import org.apache.maven.artifact.Artifact;
import org.apache.maven.artifact.ArtifactUtils;
+import org.apache.maven.artifact.handler.manager.ArtifactHandlerManager;
import org.apache.maven.artifact.repository.ArtifactRepository;
import org.apache.maven.artifact.resolver.ArtifactNotFoundException;
import org.apache.maven.artifact.resolver.ArtifactResolutionException;
import org.apache.maven.artifact.resolver.filter.ArtifactFilter;
import org.apache.maven.execution.MavenSession;
+import org.apache.maven.model.Dependency;
import org.apache.maven.plugin.AbstractMojo;
+import org.apache.maven.plugin.MojoExecution;
import org.apache.maven.plugin.MojoExecutionException;
import org.apache.maven.plugin.MojoFailureException;
+import org.apache.maven.plugin.MojoExecution.Source;
import org.apache.maven.plugins.annotations.Component;
import org.apache.maven.plugins.annotations.Mojo;
import org.apache.maven.plugins.annotations.Parameter;
import org.apache.maven.project.MavenProject;
import org.apache.maven.shared.dependencies.resolve.DependencyResolver;
import
org.apache.maven.shared.dependencies.resolve.DependencyResolverException;
+import org.apache.maven.shared.artifact.DefaultArtifactCoordinate;
import org.apache.maven.shared.artifact.filter.resolve.AbstractFilter;
import org.apache.maven.shared.artifact.filter.resolve.AndFilter;
import org.apache.maven.shared.artifact.filter.resolve.Node;
@@ -79,6 +85,12 @@ public class PurgeLocalRepositoryMojo
public static final String GROUP_ID_FUZZINESS = "groupId";
/**
+ * The Maven projects in the reactor.
+ */
+ @Parameter( defaultValue = "${reactorProjects}", readonly = true, required
= true )
+ private List<MavenProject> reactorProjects;
+
+ /**
* The current Maven project.
*/
@Parameter( defaultValue = "${project}", readonly = true, required = true )
@@ -88,6 +100,18 @@ public class PurgeLocalRepositoryMojo
private MavenSession session;
/**
+ * This mojo execution, used to determine if it was launched from the
lifecycle or the command-line.
+ */
+ @Parameter( defaultValue = "${mojo}", required = true, readonly = true )
+ private MojoExecution mojoExecution;
+
+ /**
+ * Artifact handler manager.
+ */
+ @Component
+ private ArtifactHandlerManager artifactHandlerManager;
+
+ /**
* The list of dependencies in the form of groupId:artifactId which should
BE deleted/purged from the local
* repository. Note that using this parameter will deactivate the normal
process for purging the current project
* dependency tree. If this parameter is used, only the included artifacts
will be purged. The manualIncludes
@@ -214,31 +238,30 @@ public class PurgeLocalRepositoryMojo
private Artifact projectArtifact;
- private Set<Artifact> directDependencyArtifacts;
+ private List<Dependency> directDependencies;
/**
* Default constructor
*
- * @param directDependencyArtifacts Set of Artifact objects which
represent the direct dependencies of the
- * project
+ * @param directDependencies Set of dependencies objects which
represent the direct dependencies of the project
*/
- public DirectDependencyFilter( Artifact projectArtifact, Set<Artifact>
directDependencyArtifacts )
+ public DirectDependencyFilter( Artifact projectArtifact,
List<Dependency> directDependencies )
{
this.projectArtifact = projectArtifact;
- this.directDependencyArtifacts = directDependencyArtifacts;
+ this.directDependencies = directDependencies;
}
@Override
public boolean accept( Node node, List<Node> parents )
{
- if ( artifactsGAMatch( node, projectArtifact ) )
+ if ( artifactsGAMatch( node, projectArtifact.getGroupId(),
projectArtifact.getArtifactId() ) )
{
return true;
}
- for ( Artifact depArtifact : directDependencyArtifacts )
+ for ( Dependency dep : directDependencies )
{
- if ( this.artifactsGAMatch( node, depArtifact ) )
+ if ( this.artifactsGAMatch( node, dep.getGroupId(),
dep.getArtifactId() ) )
{
return true;
}
@@ -249,21 +272,21 @@ public class PurgeLocalRepositoryMojo
/*
* Compare the groupId:artifactId of two artifacts.
*/
- private boolean artifactsGAMatch( Node node, Artifact artifact2 )
+ private boolean artifactsGAMatch( Node node, String groupId, String
artifactId )
{
if ( node.getDependency() == null )
{
return false;
}
- if ( !node.getDependency().getGroupId().equals(
artifact2.getGroupId() ) )
+ if ( !node.getDependency().getGroupId().equals( groupId ) )
{
- getLog().debug( "Different groupId: " + node.getDependency() +
" " + artifact2 );
+ getLog().debug( "Different groupId: " + node.getDependency() +
" " + groupId );
return false;
}
- if ( !node.getDependency().getArtifactId().equals(
artifact2.getArtifactId() ) )
+ if ( !node.getDependency().getArtifactId().equals( artifactId ) )
{
- getLog().debug( "Different artifactId: " +
node.getDependency() + " " + artifact2 );
+ getLog().debug( "Different artifactId: " +
node.getDependency() + " " + artifactId );
return false;
}
return true;
@@ -310,12 +333,49 @@ public class PurgeLocalRepositoryMojo
return;
}
- Set<Artifact> dependencyArtifacts = project.getDependencyArtifacts();
+ Set<Artifact> purgedArtifacts = new HashSet<Artifact>();
+ if ( shouldPurgeAllProjectsInReactor() )
+ {
+ for ( MavenProject reactorProject : reactorProjects )
+ {
+ purgeLocalRepository( reactorProject, purgedArtifacts );
+ }
+ }
+ else
+ {
+ purgeLocalRepository( project, purgedArtifacts );
+ }
+ }
- TransformableFilter dependencyFilter = createPurgeArtifactsFilter(
dependencyArtifacts );
+ /**
+ * Determines if all projects in the reactor should be purged from their
dependencies. When this goal is started on
+ * the command-line, it is always the case. When it is bound to a phase in
the lifecycle, it is never the case.
+ *
+ * @return <code>true</code> if all projects in the reactor should be
purged, <code>false</code> otherwise.
+ */
+ private boolean shouldPurgeAllProjectsInReactor()
+ {
+ Source source = mojoExecution.getSource();
+ return reactorProjects.size() > 1 && source == Source.CLI;
+ }
+
+ /**
+ * Purges the local repository for the dependencies in the given Maven
project.
+ *
+ * @param project Maven project.
+ * @param resolvedArtifactsToPurge The artifacts that were already purged.
+ * @throws MojoFailureException in case of errors during the purge.
+ */
+ private void purgeLocalRepository( MavenProject project, Set<Artifact>
purgedArtifacts )
+ throws MojoFailureException
+ {
+ List<Dependency> dependencies = project.getDependencies();
+
+ TransformableFilter dependencyFilter =
+ createPurgeArtifactsFilter( project, dependencies, purgedArtifacts
);
Set<Artifact> resolvedArtifactsToPurge =
- getFilteredResolvedArtifacts( project, dependencyArtifacts,
dependencyFilter );
+ getFilteredResolvedArtifacts( project, dependencies,
dependencyFilter );
if ( resolvedArtifactsToPurge.isEmpty() )
{
@@ -325,6 +385,7 @@ public class PurgeLocalRepositoryMojo
verbose( "Purging dependencies for project: " + project.getId() );
purgeArtifacts( resolvedArtifactsToPurge );
+ purgedArtifacts.addAll( resolvedArtifactsToPurge );
if ( reResolve )
{
@@ -420,11 +481,13 @@ public class PurgeLocalRepositoryMojo
* Create the includes exclude filter to use when resolving and purging
dependencies Also excludes any "system"
* scope dependencies
*
- * @param dependencyArtifacts The dependency artifacts to use as a
reference if we're excluding transitive
- * dependencies
+ * @param project The Maven project.
+ * @param dependencies The dependencies to use as a reference if we're
excluding transitive dependencies
+ * @param purgedArtifacts The artifacts already purged.
* @return the created filter
*/
- private TransformableFilter createPurgeArtifactsFilter( Set<Artifact>
dependencyArtifacts )
+ private TransformableFilter createPurgeArtifactsFilter( MavenProject
project, List<Dependency> dependencies,
+ Set<Artifact>
purgedArtifacts )
{
List<TransformableFilter> subFilters = new
ArrayList<TransformableFilter>();
@@ -457,13 +520,38 @@ public class PurgeLocalRepositoryMojo
if ( !actTransitively )
{
- subFilters.add( new DirectDependencyFilter( project.getArtifact(),
dependencyArtifacts ) );
+ subFilters.add( new DirectDependencyFilter( project.getArtifact(),
dependencies ) );
}
+ List<String> exclusions = new ArrayList<String>(
reactorProjects.size() );
+ // It doesn't make sense to include projects from the reactor here
since they're likely not able to be resolved
+ for ( MavenProject reactorProject : reactorProjects )
+ {
+ exclusions.add( toPatternExcludes( reactorProject.getArtifact() )
);
+ }
+ // There is no need to consider a second time artifacts that were
already purged (re-resolved or not)
+ for ( Artifact purgedArtifact : purgedArtifacts )
+ {
+ exclusions.add( toPatternExcludes( purgedArtifact ) );
+ }
+ subFilters.add( new PatternExclusionsFilter( exclusions ) );
+
return new AndFilter( subFilters );
}
/**
+ * Returns a string that represents a pattern for an exclude filter for
the given artifact.
+ *
+ * @param artifact Artifact.
+ * @return String representation of a pattern for an exclude filter for
the given artifact.
+ */
+ private String toPatternExcludes( Artifact artifact )
+ {
+ return artifact.getGroupId() + ":" + artifact.getArtifactId() + ":"
+ + artifact.getArtifactHandler().getExtension() + ":" +
artifact.getVersion();
+ }
+
+ /**
* Convert comma separated list of includes to List object
*
* @param include
@@ -482,7 +570,7 @@ public class PurgeLocalRepositoryMojo
return includes;
}
- private Set<Artifact> getFilteredResolvedArtifacts( MavenProject project,
Set<Artifact> artifacts,
+ private Set<Artifact> getFilteredResolvedArtifacts( MavenProject project,
List<Dependency> dependencies,
TransformableFilter
filter )
{
try
@@ -502,7 +590,7 @@ public class PurgeLocalRepositoryMojo
}
catch ( DependencyResolverException e )
{
- getLog().info( "Unable to resolve all dependencies for : " +
project.getGroupId() + ":"
+ getLog().info( "Unable to resolve all dependencies for: " +
project.getGroupId() + ":"
+ project.getArtifactId() + ":" +
project.getVersion()
+ ". Falling back to non-transitive mode for
initial artifact resolution." );
}
@@ -511,24 +599,26 @@ public class PurgeLocalRepositoryMojo
ArtifactFilter artifactFilter = filter.transform( new
ArtifactIncludeFilterTransformer() );
- // Resolve the only poms here instead of the actual artifacts, because
the files will be deleted during the
- // purge anyway
- for ( Artifact artifact : artifacts )
+ for ( Dependency dependency : dependencies )
{
- if ( artifactFilter.include( artifact ) )
+ DefaultArtifactCoordinate coordinate = new
DefaultArtifactCoordinate();
+ coordinate.setGroupId( dependency.getGroupId() );
+ coordinate.setArtifactId( dependency.getArtifactId() );
+ coordinate.setVersion( dependency.getVersion() );
+ coordinate.setExtension(
artifactHandlerManager.getArtifactHandler( dependency.getType()
).getExtension() );
+ try
{
- try
+ Artifact artifact =
+ artifactResolver.resolveArtifact(
session.getProjectBuildingRequest(), coordinate ).getArtifact();
+ if ( artifactFilter.include( artifact ) )
{
- ArtifactResult artifactResult =
- artifactResolver.resolveArtifact(
session.getProjectBuildingRequest(), artifact );
-
- resolvedArtifacts.add( artifactResult.getArtifact() );
- }
- catch ( ArtifactResolverException e )
- {
- getLog().debug( "Unable to resolve artifact: " + artifact
);
+ resolvedArtifacts.add( artifact );
}
}
+ catch ( ArtifactResolverException e )
+ {
+ getLog().debug( "Unable to resolve artifact: " + coordinate );
+ }
}
return resolvedArtifacts;
}
Modified:
maven/plugins/trunk/maven-dependency-plugin/src/test/java/org/apache/maven/plugins/dependency/TestSkip.java
URL:
http://svn.apache.org/viewvc/maven/plugins/trunk/maven-dependency-plugin/src/test/java/org/apache/maven/plugins/dependency/TestSkip.java?rev=1800481&r1=1800480&r2=1800481&view=diff
==============================================================================
---
maven/plugins/trunk/maven-dependency-plugin/src/test/java/org/apache/maven/plugins/dependency/TestSkip.java
(original)
+++
maven/plugins/trunk/maven-dependency-plugin/src/test/java/org/apache/maven/plugins/dependency/TestSkip.java
Sat Jul 1 07:32:06 2017
@@ -104,7 +104,7 @@ public class TestSkip
public void testSkipPurgeLocalRepository()
throws Exception
{
- doTest( "purge-local-repository" );
+ doSpecialTest( "purge-local-repository" );
}
public void testSkipResolve()
Added:
maven/plugins/trunk/maven-dependency-plugin/src/test/resources/unit/skip-test/plugin-purge-local-repository-config.xml
URL:
http://svn.apache.org/viewvc/maven/plugins/trunk/maven-dependency-plugin/src/test/resources/unit/skip-test/plugin-purge-local-repository-config.xml?rev=1800481&view=auto
==============================================================================
---
maven/plugins/trunk/maven-dependency-plugin/src/test/resources/unit/skip-test/plugin-purge-local-repository-config.xml
(added)
+++
maven/plugins/trunk/maven-dependency-plugin/src/test/resources/unit/skip-test/plugin-purge-local-repository-config.xml
Sat Jul 1 07:32:06 2017
@@ -0,0 +1,48 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements. See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership. The ASF licenses this file
+ to you under the Apache License, Version 2.0 (the
+ "License"); you may not use this file except in compliance
+ with the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing,
+ software distributed under the License is distributed on an
+ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ KIND, either express or implied. See the License for the
+ specific language governing permissions and limitations
+ under the License.
+-->
+
+<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>com.mycompany.app</groupId>
+ <artifactId>my-mojo</artifactId>
+ <packaging>maven-plugin</packaging>
+ <version>1.0-SNAPSHOT</version>
+
+ <name>my-mojo Maven Mojo</name>
+ <url>http://maven.apache.org</url>
+
+ <build>
+ <plugins>
+ <plugin>
+ <artifactId>maven-dependency-plugin</artifactId>
+ <configuration>
+ <reactorProjects>
+ <reactorProject
implementation="org.apache.maven.plugins.dependency.testUtils.stubs.DuplicateDependenciesProjectStub"/>
+ </reactorProjects>
+ <project
implementation="org.apache.maven.plugins.dependency.testUtils.stubs.DuplicateDependenciesProjectStub"/>
+ <skip>true</skip>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+</project>
Propchange:
maven/plugins/trunk/maven-dependency-plugin/src/test/resources/unit/skip-test/plugin-purge-local-repository-config.xml
------------------------------------------------------------------------------
svn:eol-style = native
Propchange:
maven/plugins/trunk/maven-dependency-plugin/src/test/resources/unit/skip-test/plugin-purge-local-repository-config.xml
------------------------------------------------------------------------------
svn:keywords = Author Date Id Revision