mirror of https://github.com/apache/maven.git
[MNG-4660] Use of --resume-from in multi-module project fails with missing inter-module dependencies
This commit is contained in:
parent
83c6b84540
commit
3615723179
|
@ -91,6 +91,12 @@ under the License.
|
||||||
<version>4.12</version>
|
<version>4.12</version>
|
||||||
<!-- NOTE: Use compile scope for transitivity. -->
|
<!-- NOTE: Use compile scope for transitivity. -->
|
||||||
</dependency>
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.hamcrest</groupId>
|
||||||
|
<artifactId>hamcrest-all</artifactId>
|
||||||
|
<version>1.3</version>
|
||||||
|
<scope>test</scope>
|
||||||
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.codehaus.plexus</groupId>
|
<groupId>org.codehaus.plexus</groupId>
|
||||||
<artifactId>plexus-utils</artifactId>
|
<artifactId>plexus-utils</artifactId>
|
||||||
|
|
|
@ -107,6 +107,8 @@ public class IntegrationTestSuite
|
||||||
// -------------------------------------------------------------------------------------------------------------
|
// -------------------------------------------------------------------------------------------------------------
|
||||||
// suite.addTestSuite( MavenIT0108SnapshotUpdateTest.class ); -- MNG-3137
|
// suite.addTestSuite( MavenIT0108SnapshotUpdateTest.class ); -- MNG-3137
|
||||||
|
|
||||||
|
suite.addTestSuite( MavenITmng4660ResumeFromTest.class );
|
||||||
|
suite.addTestSuite( MavenITmng4660OutdatedPackagedArtifact.class );
|
||||||
suite.addTestSuite( MavenITmng6759TransitiveDependencyRepositoriesTest.class );
|
suite.addTestSuite( MavenITmng6759TransitiveDependencyRepositoriesTest.class );
|
||||||
suite.addTestSuite( MavenITmng6720FailFastTest.class );
|
suite.addTestSuite( MavenITmng6720FailFastTest.class );
|
||||||
suite.addTestSuite( MavenITmng6558ToolchainsBuildingEventTest.class );
|
suite.addTestSuite( MavenITmng6558ToolchainsBuildingEventTest.class );
|
||||||
|
|
|
@ -0,0 +1,122 @@
|
||||||
|
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.util.ResourceExtractor;
|
||||||
|
import org.apache.maven.shared.utils.io.FileUtils;
|
||||||
|
|
||||||
|
import java.io.File;
|
||||||
|
import java.nio.file.Files;
|
||||||
|
import java.nio.file.Path;
|
||||||
|
import java.nio.file.Paths;
|
||||||
|
|
||||||
|
import static org.junit.Assert.assertThat;
|
||||||
|
import static org.hamcrest.Matchers.greaterThan;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This is a test case for a new check introduced with <a href="https://issues.apache.org/jira/browse/MNG-4660">MNG-4660</a>.
|
||||||
|
* That check verifies if a packaged artifact within the Reactor is up-to-date with the outputDirectory of the same project.
|
||||||
|
*
|
||||||
|
* @author Maarten Mulders
|
||||||
|
* @author Martin Kanters
|
||||||
|
*/
|
||||||
|
public class MavenITmng4660OutdatedPackagedArtifact extends AbstractMavenIntegrationTestCase {
|
||||||
|
public MavenITmng4660OutdatedPackagedArtifact()
|
||||||
|
{
|
||||||
|
super( "[3.7.0,)" );
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Test that Maven logs a warning when a packaged artifact is found that is older than the outputDirectory of the
|
||||||
|
* same artifact.
|
||||||
|
*/
|
||||||
|
public void testShouldWarnWhenPackagedArtifactIsOutdated() throws Exception
|
||||||
|
{
|
||||||
|
final File testDir = ResourceExtractor.simpleExtractResources( getClass(), "/mng-4660-outdated-packaged-artifact" );
|
||||||
|
|
||||||
|
// 1. Package the whole project
|
||||||
|
final Verifier verifier1 = newVerifier( testDir.getAbsolutePath() );
|
||||||
|
verifier1.deleteDirectory( "target" );
|
||||||
|
verifier1.deleteArtifacts( "org.apache.maven.its.mng4660" );
|
||||||
|
|
||||||
|
verifier1.executeGoal( "package" );
|
||||||
|
|
||||||
|
Path module1Jar = testDir.toPath().resolve( "module-a/target/module-a-1.0.jar" ).toAbsolutePath();
|
||||||
|
verifier1.verifyErrorFreeLog();
|
||||||
|
verifier1.assertFilePresent( module1Jar.toString() );
|
||||||
|
verifier1.resetStreams();
|
||||||
|
|
||||||
|
if ( System.getProperty( "java.version", "" ).startsWith( "1." ) )
|
||||||
|
{
|
||||||
|
// Simulating the delay between two invocations. It also makes sure we're not hit by tests that run so fast,
|
||||||
|
// that the difference in file modification time (see below) is too small to observe. Java 8 on Linux and
|
||||||
|
// macOS returns that value with "just" second precision, which is not detailed enough.
|
||||||
|
Thread.sleep( 1_000 );
|
||||||
|
}
|
||||||
|
|
||||||
|
// 2. Create a properties file with some content and compile only that module (module A).
|
||||||
|
final Verifier verifier2 = newVerifier( testDir.getAbsolutePath() );
|
||||||
|
final Path resourcesDirectory = Files.createDirectories( Paths.get( testDir.toString(), "module-a", "src", "main", "resources" ) );
|
||||||
|
final Path fileToWrite = resourcesDirectory.resolve( "example.properties" );
|
||||||
|
FileUtils.fileWrite( fileToWrite.toString(), "x=42" );
|
||||||
|
|
||||||
|
verifier2.setAutoclean( false );
|
||||||
|
verifier2.addCliOption( "--projects" );
|
||||||
|
verifier2.addCliOption( ":module-a" );
|
||||||
|
verifier2.executeGoal( "compile" );
|
||||||
|
|
||||||
|
Path module1PropertiesFile = testDir.toPath().resolve( "module-a/target/classes/example.properties" )
|
||||||
|
.toAbsolutePath();
|
||||||
|
|
||||||
|
verifier2.assertFilePresent( module1PropertiesFile.toString() );
|
||||||
|
assertThat( Files.getLastModifiedTime( module1PropertiesFile ),
|
||||||
|
greaterThan ( Files.getLastModifiedTime( module1Jar ) ) );
|
||||||
|
|
||||||
|
Path module1Class = testDir.toPath().resolve( "module-a/target/classes/org/apache/maven/it/Example.class" )
|
||||||
|
.toAbsolutePath();
|
||||||
|
verifier2.verifyErrorFreeLog();
|
||||||
|
verifier2.assertFilePresent( module1Class.toString() );
|
||||||
|
verifier2.resetStreams();
|
||||||
|
|
||||||
|
// 3. Resume project build from module B, that depends on module A we just touched. Its packaged artifact
|
||||||
|
// is no longer in sync with its compiled artifacts.
|
||||||
|
final Verifier verifier3 = newVerifier( testDir.getAbsolutePath() );
|
||||||
|
verifier3.setAutoclean( false );
|
||||||
|
verifier3.addCliOption( "--resume-from" );
|
||||||
|
verifier3.addCliOption( ":module-b" );
|
||||||
|
verifier3.executeGoal( "compile" );
|
||||||
|
|
||||||
|
verifier3.verifyErrorFreeLog();
|
||||||
|
try
|
||||||
|
{
|
||||||
|
verifier3.verifyTextInLog( "Packaged artifact is not up-to-date" );
|
||||||
|
}
|
||||||
|
catch ( VerificationException e )
|
||||||
|
{
|
||||||
|
String message = e.getMessage() + System.lineSeparator();
|
||||||
|
message += " " + module1Jar.getFileName() + " -> " + Files.getLastModifiedTime( module1Jar )
|
||||||
|
+ System.lineSeparator();
|
||||||
|
message += " " + module1PropertiesFile.getFileName() + " -> " + Files.getLastModifiedTime( module1PropertiesFile )
|
||||||
|
+ System.lineSeparator();
|
||||||
|
throw new VerificationException( message, e.getCause() );
|
||||||
|
}
|
||||||
|
verifier3.resetStreams();
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,112 @@
|
||||||
|
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.util.ResourceExtractor;
|
||||||
|
|
||||||
|
import java.io.File;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This is a test case for <a href="https://issues.apache.org/jira/browse/MNG-4660">MNG-4660</a>.
|
||||||
|
*
|
||||||
|
* @author Maarten Mulders
|
||||||
|
* @author Martin Kanters
|
||||||
|
*/
|
||||||
|
public class MavenITmng4660ResumeFromTest extends AbstractMavenIntegrationTestCase {
|
||||||
|
public MavenITmng4660ResumeFromTest()
|
||||||
|
{
|
||||||
|
super( "[3.7.0,)" );
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Test that the --resume-from flag resolves dependencies inside the same Maven project
|
||||||
|
* without having them installed first.
|
||||||
|
* This test case uses the target/classes folder of module-a, for the situation where
|
||||||
|
* module-a has not been packaged.
|
||||||
|
*/
|
||||||
|
public void testShouldResolveOutputDirectoryFromEarlierBuild() throws Exception
|
||||||
|
{
|
||||||
|
final File testDir = ResourceExtractor.simpleExtractResources( getClass(), "/mng-4660-resume-from" );
|
||||||
|
|
||||||
|
final Verifier verifier1 = newVerifier( testDir.getAbsolutePath() );
|
||||||
|
verifier1.deleteDirectory( "target" );
|
||||||
|
verifier1.deleteArtifacts( "org.apache.maven.its.mng4660" );
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
verifier1.executeGoal( "test" ); // The test goal will not create a packaged artifact
|
||||||
|
fail( "Expected this invocation to fail" ); // See TestCase.java
|
||||||
|
}
|
||||||
|
catch ( final VerificationException ve )
|
||||||
|
{
|
||||||
|
verifier1.verifyTextInLog( "Deliberately fail test case" );
|
||||||
|
}
|
||||||
|
finally
|
||||||
|
{
|
||||||
|
verifier1.resetStreams();
|
||||||
|
}
|
||||||
|
|
||||||
|
final Verifier verifier2 = newVerifier( testDir.getAbsolutePath() );
|
||||||
|
verifier2.setAutoclean( false );
|
||||||
|
verifier2.addCliOption( "--resume-from" );
|
||||||
|
verifier2.addCliOption( ":module-b" );
|
||||||
|
verifier2.executeGoal( "compile" ); // to prevent the unit test from failing (again)
|
||||||
|
|
||||||
|
verifier2.verifyErrorFreeLog();
|
||||||
|
verifier2.resetStreams();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Test that the --resume-from flag resolves dependencies inside the same Maven project
|
||||||
|
* without having them installed first.
|
||||||
|
* This test case uses the packaged artifact of module-a.
|
||||||
|
*/
|
||||||
|
public void testShouldResolvePackagedArtifactFromEarlierBuild() throws Exception
|
||||||
|
{
|
||||||
|
final File testDir = ResourceExtractor.simpleExtractResources( getClass(), "/mng-4660-resume-from" );
|
||||||
|
|
||||||
|
final Verifier verifier1 = newVerifier( testDir.getAbsolutePath() );
|
||||||
|
verifier1.deleteDirectory( "target" );
|
||||||
|
verifier1.deleteArtifacts( "org.apache.maven.its.mng4660" );
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
verifier1.executeGoal( "verify" ); // The verify goal will create a packaged artifact
|
||||||
|
fail( "Expected this invocation to fail" ); // See TestCase.java
|
||||||
|
}
|
||||||
|
catch ( final VerificationException ve )
|
||||||
|
{
|
||||||
|
verifier1.verifyTextInLog( "Deliberately fail test case" );
|
||||||
|
}
|
||||||
|
finally
|
||||||
|
{
|
||||||
|
verifier1.resetStreams();
|
||||||
|
}
|
||||||
|
|
||||||
|
final Verifier verifier2 = newVerifier( testDir.getAbsolutePath() );
|
||||||
|
verifier2.setAutoclean( false );
|
||||||
|
verifier2.addCliOption( "--resume-from" );
|
||||||
|
verifier2.addCliOption( ":module-b" );
|
||||||
|
verifier2.executeGoal( "compile" ); // to prevent the unit test from failing (again)
|
||||||
|
|
||||||
|
verifier2.verifyErrorFreeLog();
|
||||||
|
verifier2.resetStreams();
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,36 @@
|
||||||
|
<?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/maven-v4_0_0.xsd">
|
||||||
|
|
||||||
|
<modelVersion>4.0.0</modelVersion>
|
||||||
|
|
||||||
|
<artifactId>module-a</artifactId>
|
||||||
|
|
||||||
|
<parent>
|
||||||
|
<groupId>org.apache.maven.its.mng4660</groupId>
|
||||||
|
<artifactId>parent</artifactId>
|
||||||
|
<version>1.0</version>
|
||||||
|
</parent>
|
||||||
|
|
||||||
|
</project>
|
|
@ -0,0 +1,24 @@
|
||||||
|
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.
|
||||||
|
*/
|
||||||
|
|
||||||
|
public class Example
|
||||||
|
{
|
||||||
|
}
|
|
@ -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/maven-v4_0_0.xsd">
|
||||||
|
|
||||||
|
<modelVersion>4.0.0</modelVersion>
|
||||||
|
|
||||||
|
<artifactId>module-b</artifactId>
|
||||||
|
|
||||||
|
<parent>
|
||||||
|
<groupId>org.apache.maven.its.mng4660</groupId>
|
||||||
|
<artifactId>parent</artifactId>
|
||||||
|
<version>1.0</version>
|
||||||
|
</parent>
|
||||||
|
|
||||||
|
<dependencies>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.apache.maven.its.mng4660</groupId>
|
||||||
|
<artifactId>module-a</artifactId>
|
||||||
|
<version>1.0</version>
|
||||||
|
</dependency>
|
||||||
|
</dependencies>
|
||||||
|
|
||||||
|
</project>
|
|
@ -0,0 +1,28 @@
|
||||||
|
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.
|
||||||
|
*/
|
||||||
|
|
||||||
|
public class AnotherExample
|
||||||
|
{
|
||||||
|
public AnotherExample()
|
||||||
|
{
|
||||||
|
new Example();
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,31 @@
|
||||||
|
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.junit.Test;
|
||||||
|
|
||||||
|
public class TestCase
|
||||||
|
{
|
||||||
|
@Test
|
||||||
|
public void testCase()
|
||||||
|
{
|
||||||
|
final Example example = new Example();
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,59 @@
|
||||||
|
<?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/maven-v4_0_0.xsd">
|
||||||
|
<modelVersion>4.0.0</modelVersion>
|
||||||
|
|
||||||
|
<groupId>org.apache.maven.its.mng4660</groupId>
|
||||||
|
<artifactId>parent</artifactId>
|
||||||
|
<version>1.0</version>
|
||||||
|
|
||||||
|
<packaging>pom</packaging>
|
||||||
|
|
||||||
|
<name>Maven Integration Test :: MNG-4660</name>
|
||||||
|
<description>
|
||||||
|
This is a test case for a new check which verifies if a packaged artifact
|
||||||
|
within the Reactor is up-to-date with the outputDirectory of the same project.
|
||||||
|
</description>
|
||||||
|
|
||||||
|
<properties>
|
||||||
|
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||||
|
<maven.compiler.source>1.8</maven.compiler.source>
|
||||||
|
<maven.compiler.target>1.8</maven.compiler.target>
|
||||||
|
</properties>
|
||||||
|
|
||||||
|
<modules>
|
||||||
|
<module>module-b</module>
|
||||||
|
<module>module-a</module>
|
||||||
|
</modules>
|
||||||
|
|
||||||
|
<dependencies>
|
||||||
|
<dependency>
|
||||||
|
<groupId>junit</groupId>
|
||||||
|
<artifactId>junit</artifactId>
|
||||||
|
<version>4.12</version>
|
||||||
|
<scope>test</scope>
|
||||||
|
</dependency>
|
||||||
|
</dependencies>
|
||||||
|
|
||||||
|
</project>
|
|
@ -0,0 +1,36 @@
|
||||||
|
<?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/maven-v4_0_0.xsd">
|
||||||
|
|
||||||
|
<modelVersion>4.0.0</modelVersion>
|
||||||
|
|
||||||
|
<artifactId>module-a</artifactId>
|
||||||
|
|
||||||
|
<parent>
|
||||||
|
<groupId>org.apache.maven.its.mng4660</groupId>
|
||||||
|
<artifactId>parent</artifactId>
|
||||||
|
<version>1.0</version>
|
||||||
|
</parent>
|
||||||
|
|
||||||
|
</project>
|
|
@ -0,0 +1,24 @@
|
||||||
|
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.
|
||||||
|
*/
|
||||||
|
|
||||||
|
public class Example
|
||||||
|
{
|
||||||
|
}
|
|
@ -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/maven-v4_0_0.xsd">
|
||||||
|
|
||||||
|
<modelVersion>4.0.0</modelVersion>
|
||||||
|
|
||||||
|
<artifactId>module-b</artifactId>
|
||||||
|
|
||||||
|
<parent>
|
||||||
|
<groupId>org.apache.maven.its.mng4660</groupId>
|
||||||
|
<artifactId>parent</artifactId>
|
||||||
|
<version>1.0</version>
|
||||||
|
</parent>
|
||||||
|
|
||||||
|
<dependencies>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.apache.maven.its.mng4660</groupId>
|
||||||
|
<artifactId>module-a</artifactId>
|
||||||
|
<version>1.0</version>
|
||||||
|
</dependency>
|
||||||
|
</dependencies>
|
||||||
|
|
||||||
|
</project>
|
|
@ -0,0 +1,28 @@
|
||||||
|
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.
|
||||||
|
*/
|
||||||
|
|
||||||
|
public class AnotherExample
|
||||||
|
{
|
||||||
|
public AnotherExample()
|
||||||
|
{
|
||||||
|
new Example();
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,34 @@
|
||||||
|
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.junit.Test;
|
||||||
|
|
||||||
|
import static org.junit.Assert.fail;
|
||||||
|
|
||||||
|
public class TestCase
|
||||||
|
{
|
||||||
|
@Test
|
||||||
|
public void testCase()
|
||||||
|
{
|
||||||
|
final Example example = new Example();
|
||||||
|
fail( "Deliberately fail test case" );
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,59 @@
|
||||||
|
<?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/maven-v4_0_0.xsd">
|
||||||
|
<modelVersion>4.0.0</modelVersion>
|
||||||
|
|
||||||
|
<groupId>org.apache.maven.its.mng4660</groupId>
|
||||||
|
<artifactId>parent</artifactId>
|
||||||
|
<version>1.0</version>
|
||||||
|
|
||||||
|
<packaging>pom</packaging>
|
||||||
|
|
||||||
|
<name>Maven Integration Test :: MNG-4660</name>
|
||||||
|
<description>
|
||||||
|
Test that the --resume-from flag resolves dependencies inside the same Maven project
|
||||||
|
without having them installed first.
|
||||||
|
</description>
|
||||||
|
|
||||||
|
<properties>
|
||||||
|
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||||
|
<maven.compiler.source>1.8</maven.compiler.source>
|
||||||
|
<maven.compiler.target>1.8</maven.compiler.target>
|
||||||
|
</properties>
|
||||||
|
|
||||||
|
<modules>
|
||||||
|
<module>module-b</module>
|
||||||
|
<module>module-a</module>
|
||||||
|
</modules>
|
||||||
|
|
||||||
|
<dependencies>
|
||||||
|
<dependency>
|
||||||
|
<groupId>junit</groupId>
|
||||||
|
<artifactId>junit</artifactId>
|
||||||
|
<version>4.12</version>
|
||||||
|
<scope>test</scope>
|
||||||
|
</dependency>
|
||||||
|
</dependencies>
|
||||||
|
|
||||||
|
</project>
|
Loading…
Reference in New Issue