diff --git a/src/it/distributionManagemetTile/invoker.properties b/src/it/distributionManagemetTile/invoker.properties new file mode 100644 index 0000000..c9cdf7b --- /dev/null +++ b/src/it/distributionManagemetTile/invoker.properties @@ -0,0 +1 @@ +invoker.goals = clean dependency:go-offline help:effective-pom diff --git a/src/it/distributionManagemetTile/pom.xml b/src/it/distributionManagemetTile/pom.xml new file mode 100644 index 0000000..d20c148 --- /dev/null +++ b/src/it/distributionManagemetTile/pom.xml @@ -0,0 +1,16 @@ + + + 4.0.0 + + io.repaint.maven + distribution-management-test + 1.0-SNAPSHOT + pom + + Maven Tiles Order Test + + + tileA + projectA + + diff --git a/src/it/distributionManagemetTile/projectA/pom.xml b/src/it/distributionManagemetTile/projectA/pom.xml new file mode 100644 index 0000000..bb560e1 --- /dev/null +++ b/src/it/distributionManagemetTile/projectA/pom.xml @@ -0,0 +1,27 @@ + + + 4.0.0 + + io.repaint.maven + projectA + 1 + pom + + Maven Distribution Management Test + + + + + io.repaint.maven + tiles-maven-plugin + @project.version@ + true + + + io.repaint.maven:tileA:1 + + + + + + diff --git a/src/it/distributionManagemetTile/tileA/pom.xml b/src/it/distributionManagemetTile/tileA/pom.xml new file mode 100644 index 0000000..71ab6de --- /dev/null +++ b/src/it/distributionManagemetTile/tileA/pom.xml @@ -0,0 +1,23 @@ + + + 4.0.0 + + io.repaint.maven + tileA + 1 + tile + + Maven Tiles Distribution Management Test - TileA + + + + + io.repaint.maven + tiles-maven-plugin + @project.version@ + true + + + + + diff --git a/src/it/distributionManagemetTile/tileA/tile.xml b/src/it/distributionManagemetTile/tileA/tile.xml new file mode 100644 index 0000000..2168641 --- /dev/null +++ b/src/it/distributionManagemetTile/tileA/tile.xml @@ -0,0 +1,18 @@ + + + 4.0.0 + + + + sonatype-staging + oss.sonatype.org Staging Repository + https://oss.sonatype.org/service/local/staging/deploy/maven2/ + + + sonatype-snapshots + oss.sonatype.org Snapshot Repository + https://oss.sonatype.org/content/repositories/snapshots/ + + + + \ No newline at end of file diff --git a/src/it/distributionManagemetTile/verify.bsh b/src/it/distributionManagemetTile/verify.bsh new file mode 100644 index 0000000..bae48af --- /dev/null +++ b/src/it/distributionManagemetTile/verify.bsh @@ -0,0 +1,13 @@ +import java.io.*; +import java.util.*; + +File file = new File(basedir, "build.log" ); +if ( !file.isFile() ) { + throw new FileNotFoundException( "Could not find build log: " + file ); +} + +String content = new Scanner(file).useDelimiter("\\Z").next(); + +// tileX should win +if (!content.contains("oss.sonatype.org Staging Repository")) + throw new Exception("oss.sonatype.org Staging Repository expected to be in effective pom"); diff --git a/src/main/groovy/io/repaint/maven/tiles/TilesMavenLifecycleParticipant.groovy b/src/main/groovy/io/repaint/maven/tiles/TilesMavenLifecycleParticipant.groovy index 678564c..628e065 100644 --- a/src/main/groovy/io/repaint/maven/tiles/TilesMavenLifecycleParticipant.groovy +++ b/src/main/groovy/io/repaint/maven/tiles/TilesMavenLifecycleParticipant.groovy @@ -25,7 +25,6 @@ import org.apache.maven.RepositoryUtils import org.apache.maven.artifact.Artifact import org.apache.maven.artifact.DefaultArtifact import org.apache.maven.artifact.handler.DefaultArtifactHandler -import org.apache.maven.artifact.repository.ArtifactRepository import org.apache.maven.artifact.repository.ArtifactRepositoryPolicy import org.apache.maven.artifact.repository.MavenArtifactRepository import org.apache.maven.artifact.repository.layout.ArtifactRepositoryLayout @@ -309,7 +308,7 @@ class TilesMavenLifecycleParticipant extends AbstractMavenLifecycleParticipant { // disabled explicit lookup as these seem to be injected just fine. Are these required for eclipse m2e> //repositoryFactory = mavenSession.container.lookup(ArtifactRepositoryFactory) - //repositoryLayouts = mavenSession.lookupMap(ArtifactRepositoryLayout.class.getName()) as Map + repositoryLayouts = mavenSession.lookupMap(ArtifactRepositoryLayout.class.getName()) as Map List allProjects = mavenSession.getProjects() if (allProjects != null) { @@ -349,7 +348,6 @@ class TilesMavenLifecycleParticipant extends AbstractMavenLifecycleParticipant { } else { return new ArtifactRepositoryPolicy(true, UPDATE_POLICY_ALWAYS, CHECKSUM_POLICY_WARN) } - } /** @@ -364,10 +362,11 @@ class TilesMavenLifecycleParticipant extends AbstractMavenLifecycleParticipant { if (distributionManagement) { if (distributionManagement.repository) { - ArtifactRepository repo = new MavenArtifactRepository( + ArtifactRepositoryLayout layout = repositoryLayouts.get(distributionManagement.repository.layout); + MavenArtifactRepository repo = new MavenArtifactRepository( distributionManagement.repository.id, getReleaseDistributionManagementRepositoryUrl(project), - repositoryFactory.layout, + layout, getArtifactRepositoryPolicy(distributionManagement.repository.snapshots), getArtifactRepositoryPolicy(distributionManagement.repository.releases)) project.setReleaseArtifactRepository(repo) @@ -375,10 +374,11 @@ class TilesMavenLifecycleParticipant extends AbstractMavenLifecycleParticipant { } if (distributionManagement.snapshotRepository) { - ArtifactRepository repo = new MavenArtifactRepository( + ArtifactRepositoryLayout layout = repositoryLayouts.get(distributionManagement.repository.layout); + MavenArtifactRepository repo = new MavenArtifactRepository( distributionManagement.snapshotRepository.id, getSnapshotDistributionManagementRepositoryUrl(project), - repositoryFactory.layout, + layout, getArtifactRepositoryPolicy(distributionManagement.snapshotRepository.snapshots), getArtifactRepositoryPolicy(distributionManagement.snapshotRepository.releases)) project.setReleaseArtifactRepository(repo) @@ -503,8 +503,6 @@ class TilesMavenLifecycleParticipant extends AbstractMavenLifecycleParticipant { Model read(InputStream input, Map options) throws IOException, ModelParseException { Model model = modelProcessor.read(input, options) - - use(GavUtil) { // when we reference a submodule of a CI Friendly module in a pom (i.e. a workspace pom in Eclipse)