mirror of https://github.com/apache/maven.git
[MNG-3943] [regression] Inherited plugin executions are lost if child and parent specify different plugin versions
o Added IT git-svn-id: https://svn.apache.org/repos/asf/maven/core-integration-testing/trunk@729492 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
c9014bc2e0
commit
c41e62a317
|
@ -90,12 +90,13 @@ public class IntegrationTestSuite
|
||||||
// suite.addTestSuite( MavenIT0109ReleaseUpdateTest.class );
|
// suite.addTestSuite( MavenIT0109ReleaseUpdateTest.class );
|
||||||
// suite.addTestSuite( MavenIT0108SnapshotUpdateTest.class ); -- MNG-3137
|
// suite.addTestSuite( MavenIT0108SnapshotUpdateTest.class ); -- MNG-3137
|
||||||
|
|
||||||
|
suite.addTestSuite( MavenITmng3943PluginExecutionInheritanceTest.class );
|
||||||
suite.addTestSuite( MavenITmng3940EnvVarInterpolationTest.class );
|
suite.addTestSuite( MavenITmng3940EnvVarInterpolationTest.class );
|
||||||
suite.addTestSuite( MavenITmng3938MergePluginExecutionsTest.class );
|
suite.addTestSuite( MavenITmng3938MergePluginExecutionsTest.class );
|
||||||
suite.addTestSuite( MavenITmng3937MergedPluginExecutionGoalsTest.class );
|
suite.addTestSuite( MavenITmng3937MergedPluginExecutionGoalsTest.class );
|
||||||
suite.addTestSuite( MavenITmng3927PluginDefaultExecutionConfigTest.class );
|
suite.addTestSuite( MavenITmng3927PluginDefaultExecutionConfigTest.class );
|
||||||
suite.addTestSuite( MavenITmng3924XmlMarkupInterpolationTest.class );
|
|
||||||
suite.addTestSuite( MavenITmng3925MergedPluginExecutionOrderTest.class );
|
suite.addTestSuite( MavenITmng3925MergedPluginExecutionOrderTest.class );
|
||||||
|
suite.addTestSuite( MavenITmng3924XmlMarkupInterpolationTest.class );
|
||||||
suite.addTestSuite( MavenITmng3916PluginExecutionInheritanceTest.class );
|
suite.addTestSuite( MavenITmng3916PluginExecutionInheritanceTest.class );
|
||||||
suite.addTestSuite( MavenITmng3906MergedPluginClassPathOrderingTest.class );
|
suite.addTestSuite( MavenITmng3906MergedPluginClassPathOrderingTest.class );
|
||||||
suite.addTestSuite( MavenITmng3904NestedBuildDirInterpolationTest.class );
|
suite.addTestSuite( MavenITmng3904NestedBuildDirInterpolationTest.class );
|
||||||
|
|
|
@ -43,8 +43,8 @@ public class MavenITmng3916PluginExecutionInheritanceTest
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Test that plugin executions are properly merged during inheritance, even if the plugin sections have different
|
* Test that plugin executions are properly merged during inheritance, even if the child plugin section has no
|
||||||
* versions.
|
* version.
|
||||||
*/
|
*/
|
||||||
public void testitMNG3916()
|
public void testitMNG3916()
|
||||||
throws Exception
|
throws Exception
|
||||||
|
@ -61,7 +61,7 @@ public class MavenITmng3916PluginExecutionInheritanceTest
|
||||||
List executions = verifier.loadLines( "target/exec.log", "UTF-8" );
|
List executions = verifier.loadLines( "target/exec.log", "UTF-8" );
|
||||||
// NOTE: Ordering of executions is another issue (MNG-3887), so ignore/normalize order
|
// NOTE: Ordering of executions is another issue (MNG-3887), so ignore/normalize order
|
||||||
Collections.sort( executions );
|
Collections.sort( executions );
|
||||||
List expected = Arrays.asList( new String[] { "child-1", "child-2", "child-default", "parent-1", "parent-2" } );
|
List expected = Arrays.asList( new String[] { "child-1", "child-default", "parent-1" } );
|
||||||
assertEquals( expected, executions );
|
assertEquals( expected, executions );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,68 @@
|
||||||
|
package org.apache.maven.it;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* 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 org.apache.maven.it.Verifier;
|
||||||
|
import org.apache.maven.it.util.ResourceExtractor;
|
||||||
|
|
||||||
|
import java.io.File;
|
||||||
|
import java.util.Arrays;
|
||||||
|
import java.util.Collections;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This is a test set for <a href="http://jira.codehaus.org/browse/MNG-3943">MNG-3943</a>.
|
||||||
|
*
|
||||||
|
* @author Benjamin Bentmann
|
||||||
|
* @version $Id$
|
||||||
|
*/
|
||||||
|
public class MavenITmng3943PluginExecutionInheritanceTest
|
||||||
|
extends AbstractMavenIntegrationTestCase
|
||||||
|
{
|
||||||
|
|
||||||
|
public MavenITmng3943PluginExecutionInheritanceTest()
|
||||||
|
{
|
||||||
|
super( "(2.0.4,)" );
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Test that plugin executions are properly merged during inheritance, even if the child uses a different
|
||||||
|
* plugin version than the parent.
|
||||||
|
*/
|
||||||
|
public void testitMNG3943()
|
||||||
|
throws Exception
|
||||||
|
{
|
||||||
|
File testDir = ResourceExtractor.simpleExtractResources( getClass(), "/mng-3943" );
|
||||||
|
|
||||||
|
Verifier verifier = new Verifier( new File( testDir, "sub" ).getAbsolutePath() );
|
||||||
|
verifier.setAutoclean( false );
|
||||||
|
verifier.deleteDirectory( "target" );
|
||||||
|
verifier.executeGoal( "validate" );
|
||||||
|
verifier.verifyErrorFreeLog();
|
||||||
|
verifier.resetStreams();
|
||||||
|
|
||||||
|
List executions = verifier.loadLines( "target/exec.log", "UTF-8" );
|
||||||
|
// NOTE: Ordering of executions is another issue (MNG-3887), so ignore/normalize order
|
||||||
|
Collections.sort( executions );
|
||||||
|
List expected = Arrays.asList( new String[] { "child-1", "child-default", "parent-1" } );
|
||||||
|
assertEquals( expected, executions );
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -29,8 +29,8 @@ under the License.
|
||||||
|
|
||||||
<name>Maven Integration Test :: MNG-3916</name>
|
<name>Maven Integration Test :: MNG-3916</name>
|
||||||
<description>
|
<description>
|
||||||
Test that plugin executions are properly merged during inheritance, even if the plugin sections have different
|
Test that plugin executions are properly merged during inheritance, even if the child plugin section has no
|
||||||
versions.
|
version.
|
||||||
</description>
|
</description>
|
||||||
|
|
||||||
<build>
|
<build>
|
||||||
|
@ -51,17 +51,6 @@ under the License.
|
||||||
<string>parent-1</string>
|
<string>parent-1</string>
|
||||||
</configuration>
|
</configuration>
|
||||||
</execution>
|
</execution>
|
||||||
<execution>
|
|
||||||
<id>parent-2</id>
|
|
||||||
<phase>validate</phase>
|
|
||||||
<goals>
|
|
||||||
<goal>log-string</goal>
|
|
||||||
</goals>
|
|
||||||
<configuration>
|
|
||||||
<logFile>target/exec.log</logFile>
|
|
||||||
<string>parent-2</string>
|
|
||||||
</configuration>
|
|
||||||
</execution>
|
|
||||||
<execution>
|
<execution>
|
||||||
<!-- NOTE: <id> deliberately omitted to use default value -->
|
<!-- NOTE: <id> deliberately omitted to use default value -->
|
||||||
<phase>validate</phase>
|
<phase>validate</phase>
|
||||||
|
|
|
@ -32,8 +32,8 @@ under the License.
|
||||||
|
|
||||||
<name>Maven Integration Test :: MNG-3916</name>
|
<name>Maven Integration Test :: MNG-3916</name>
|
||||||
<description>
|
<description>
|
||||||
Test that plugin executions are properly merged during inheritance, even if the plugin sections have different
|
Test that plugin executions are properly merged during inheritance, even if the child plugin section has no
|
||||||
versions.
|
version.
|
||||||
</description>
|
</description>
|
||||||
|
|
||||||
<build>
|
<build>
|
||||||
|
@ -54,17 +54,6 @@ under the License.
|
||||||
<string>child-1</string>
|
<string>child-1</string>
|
||||||
</configuration>
|
</configuration>
|
||||||
</execution>
|
</execution>
|
||||||
<execution>
|
|
||||||
<id>child-2</id>
|
|
||||||
<phase>validate</phase>
|
|
||||||
<goals>
|
|
||||||
<goal>log-string</goal>
|
|
||||||
</goals>
|
|
||||||
<configuration>
|
|
||||||
<logFile>target/exec.log</logFile>
|
|
||||||
<string>child-2</string>
|
|
||||||
</configuration>
|
|
||||||
</execution>
|
|
||||||
<execution>
|
<execution>
|
||||||
<!-- NOTE: <id> deliberately omitted to use default value -->
|
<!-- NOTE: <id> deliberately omitted to use default value -->
|
||||||
<phase>validate</phase>
|
<phase>validate</phase>
|
||||||
|
|
|
@ -0,0 +1,70 @@
|
||||||
|
<?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>
|
||||||
|
<modelVersion>4.0.0</modelVersion>
|
||||||
|
|
||||||
|
<groupId>org.apache.maven.its.mng3943</groupId>
|
||||||
|
<artifactId>parent</artifactId>
|
||||||
|
<version>0.1</version>
|
||||||
|
<packaging>pom</packaging>
|
||||||
|
|
||||||
|
<name>Maven Integration Test :: MNG-3943</name>
|
||||||
|
<description>
|
||||||
|
Test that plugin executions are properly merged during inheritance, even if the child uses a different
|
||||||
|
plugin version than the parent.
|
||||||
|
</description>
|
||||||
|
|
||||||
|
<build>
|
||||||
|
<plugins>
|
||||||
|
<plugin>
|
||||||
|
<groupId>org.apache.maven.its.plugins</groupId>
|
||||||
|
<artifactId>maven-it-plugin-log-file</artifactId>
|
||||||
|
<!-- NOTE: Use different version than child -->
|
||||||
|
<version>0.1</version>
|
||||||
|
<executions>
|
||||||
|
<execution>
|
||||||
|
<id>parent-1</id>
|
||||||
|
<phase>validate</phase>
|
||||||
|
<goals>
|
||||||
|
<goal>log-string</goal>
|
||||||
|
</goals>
|
||||||
|
<configuration>
|
||||||
|
<logFile>target/exec.log</logFile>
|
||||||
|
<string>parent-1</string>
|
||||||
|
</configuration>
|
||||||
|
</execution>
|
||||||
|
<execution>
|
||||||
|
<!-- NOTE: <id> deliberately omitted to use default value -->
|
||||||
|
<phase>validate</phase>
|
||||||
|
<goals>
|
||||||
|
<goal>log-string</goal>
|
||||||
|
</goals>
|
||||||
|
<configuration>
|
||||||
|
<logFile>target/exec.log</logFile>
|
||||||
|
<string>parent-default</string>
|
||||||
|
</configuration>
|
||||||
|
</execution>
|
||||||
|
</executions>
|
||||||
|
</plugin>
|
||||||
|
</plugins>
|
||||||
|
</build>
|
||||||
|
</project>
|
|
@ -0,0 +1,73 @@
|
||||||
|
<?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>
|
||||||
|
<modelVersion>4.0.0</modelVersion>
|
||||||
|
|
||||||
|
<parent>
|
||||||
|
<groupId>org.apache.maven.its.mng3943</groupId>
|
||||||
|
<artifactId>parent</artifactId>
|
||||||
|
<version>0.1</version>
|
||||||
|
</parent>
|
||||||
|
|
||||||
|
<artifactId>child</artifactId>
|
||||||
|
|
||||||
|
<name>Maven Integration Test :: MNG-3943</name>
|
||||||
|
<description>
|
||||||
|
Test that plugin executions are properly merged during inheritance, even if the child uses a different
|
||||||
|
plugin version than the parent.
|
||||||
|
</description>
|
||||||
|
|
||||||
|
<build>
|
||||||
|
<plugins>
|
||||||
|
<plugin>
|
||||||
|
<groupId>org.apache.maven.its.plugins</groupId>
|
||||||
|
<artifactId>maven-it-plugin-log-file</artifactId>
|
||||||
|
<!-- NOTE: Use different version than parent -->
|
||||||
|
<version>2.1-SNAPSHOT</version>
|
||||||
|
<executions>
|
||||||
|
<execution>
|
||||||
|
<id>child-1</id>
|
||||||
|
<phase>validate</phase>
|
||||||
|
<goals>
|
||||||
|
<goal>log-string</goal>
|
||||||
|
</goals>
|
||||||
|
<configuration>
|
||||||
|
<logFile>target/exec.log</logFile>
|
||||||
|
<string>child-1</string>
|
||||||
|
</configuration>
|
||||||
|
</execution>
|
||||||
|
<execution>
|
||||||
|
<!-- NOTE: <id> deliberately omitted to use default value -->
|
||||||
|
<phase>validate</phase>
|
||||||
|
<goals>
|
||||||
|
<goal>log-string</goal>
|
||||||
|
</goals>
|
||||||
|
<configuration>
|
||||||
|
<logFile>target/exec.log</logFile>
|
||||||
|
<string>child-default</string>
|
||||||
|
</configuration>
|
||||||
|
</execution>
|
||||||
|
</executions>
|
||||||
|
</plugin>
|
||||||
|
</plugins>
|
||||||
|
</build>
|
||||||
|
</project>
|
Loading…
Reference in New Issue