Add spring-boot-versions project

Add a new maven project containing a versions.properties file and
an effective POM. Rework existing projects to use the versions
artifacts.

Partially reverts 307fbba9e4

Fixes gh-913
pull/931/head
Phillip Webb 11 years ago
parent 8bcda1bcbe
commit 4fd4744724

@ -79,6 +79,7 @@
</activation> </activation>
<modules> <modules>
<module>spring-boot-dependencies</module> <module>spring-boot-dependencies</module>
<module>spring-boot-versions</module>
<module>spring-boot-parent</module> <module>spring-boot-parent</module>
<module>spring-boot-tools</module> <module>spring-boot-tools</module>
<module>spring-boot</module> <module>spring-boot</module>

@ -96,23 +96,30 @@
</artifactItems> </artifactItems>
</configuration> </configuration>
</execution> </execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution> <execution>
<id>unpack-dependency-tools-effective-pom</id> <id>copy-versions-effective-pom</id>
<phase>generate-resources</phase> <phase>generate-resources</phase>
<goals> <goals>
<goal>unpack</goal> <goal>copy</goal>
</goals> </goals>
<configuration> <configuration>
<artifactItems> <artifactItems>
<artifactItem> <artifactItem>
<groupId>org.springframework.boot</groupId> <groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependency-tools</artifactId> <artifactId>spring-boot-versions</artifactId>
<version>${project.version}</version> <version>${project.version}</version>
<type>jar</type> <type>effective-pom</type>
<overWrite>true</overWrite>
<outputDirectory>${project.build.directory}/external-resource</outputDirectory>
<destFileName>effective-pom.xml</destFileName>
</artifactItem> </artifactItem>
</artifactItems> </artifactItems>
<includes>**/effective-pom.xml</includes>
<outputDirectory>${project.build.directory}/external-resources</outputDirectory>
</configuration> </configuration>
</execution> </execution>
</executions> </executions>

@ -1,11 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<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"> <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> <modelVersion>4.0.0</modelVersion>
<parent> <parent>
<groupId>org.springframework.boot</groupId> <groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId> <artifactId>spring-boot-tools</artifactId>
<version>1.1.0.BUILD-SNAPSHOT</version> <version>1.1.0.BUILD-SNAPSHOT</version>
<relativePath>../../spring-boot-dependencies</relativePath>
</parent> </parent>
<artifactId>spring-boot-dependency-tools</artifactId> <artifactId>spring-boot-dependency-tools</artifactId>
<name>Spring Boot Dependency Tools</name> <name>Spring Boot Dependency Tools</name>
@ -19,18 +19,6 @@
<main.basedir>${basedir}/../..</main.basedir> <main.basedir>${basedir}/../..</main.basedir>
<generated.pom.dir>${project.build.directory}/generated-resources/org/springframework/boot/dependency/tools</generated.pom.dir> <generated.pom.dir>${project.build.directory}/generated-resources/org/springframework/boot/dependency/tools</generated.pom.dir>
</properties> </properties>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.hamcrest</groupId>
<artifactId>hamcrest-library</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build> <build>
<resources> <resources>
<resource> <resource>
@ -40,93 +28,30 @@
<plugins> <plugins>
<plugin> <plugin>
<groupId>org.apache.maven.plugins</groupId> <groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId> <artifactId>maven-dependency-plugin</artifactId>
<executions> <executions>
<execution> <execution>
<id>copy-dependencies-pom</id> <id>copy-effective-pom</id>
<phase>generate-resources</phase> <phase>generate-resources</phase>
<goals> <goals>
<goal>run</goal> <goal>copy</goal>
</goals> </goals>
<configuration> <configuration>
<target> <artifactItems>
<copy file="${main.basedir}/spring-boot-dependencies/pom.xml" tofile="${generated.pom.dir}/dependencies-pom.xml" /> <artifactItem>
</target> <groupId>org.springframework.boot</groupId>
</configuration> <artifactId>spring-boot-versions</artifactId>
</execution> <version>${project.version}</version>
</executions> <type>effective-pom</type>
</plugin> <overWrite>true</overWrite>
<plugin> <outputDirectory>${generated.pom.dir}</outputDirectory>
<groupId>org.apache.maven.plugins</groupId> <destFileName>effective-pom.xml</destFileName>
<artifactId>maven-help-plugin</artifactId> </artifactItem>
<executions> </artifactItems>
<execution>
<id>generate-effective-dependencies-pom</id>
<phase>generate-resources</phase>
<goals>
<goal>effective-pom</goal>
</goals>
<configuration>
<output>${generated.pom.dir}/effective-pom.xml</output>
</configuration> </configuration>
</execution> </execution>
</executions> </executions>
</plugin> </plugin>
</plugins> </plugins>
<pluginManagement>
<plugins>
<!--This plugin's configuration is used to store Eclipse m2e settings
only. It has no influence on the Maven build itself. -->
<plugin>
<groupId>org.eclipse.m2e</groupId>
<artifactId>lifecycle-mapping</artifactId>
<version>1.0.0</version>
<configuration>
<lifecycleMappingMetadata>
<pluginExecutions>
<pluginExecution>
<pluginExecutionFilter>
<groupId>
org.apache.maven.plugins
</groupId>
<artifactId>
maven-help-plugin
</artifactId>
<versionRange>
[2.2,)
</versionRange>
<goals>
<goal>effective-pom</goal>
</goals>
</pluginExecutionFilter>
<action>
<ignore />
</action>
</pluginExecution>
<pluginExecution>
<pluginExecutionFilter>
<groupId>
org.apache.maven.plugins
</groupId>
<artifactId>
maven-antrun-plugin
</artifactId>
<versionRange>
[1.7,)
</versionRange>
<goals>
<goal>run</goal>
</goals>
</pluginExecutionFilter>
<action>
<ignore />
</action>
</pluginExecution>
</pluginExecutions>
</lifecycleMappingMetadata>
</configuration>
</plugin>
</plugins>
</pluginManagement>
</build> </build>
</project> </project>

@ -45,7 +45,6 @@ public class PomManagedDependencies extends AbstractManagedDependencies {
public PomManagedDependencies(InputStream effectivePomInputStream) { public PomManagedDependencies(InputStream effectivePomInputStream) {
try { try {
Document effectivePom = readDocument(effectivePomInputStream); Document effectivePom = readDocument(effectivePomInputStream);
for (Dependency dependency : readDependencies(effectivePom)) { for (Dependency dependency : readDependencies(effectivePom)) {
add(new ArtifactAndGroupId(dependency), dependency); add(new ArtifactAndGroupId(dependency), dependency);
} }

@ -0,0 +1,99 @@
<?xml version="1.0" encoding="UTF-8"?>
<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.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>1.1.0.BUILD-SNAPSHOT</version>
<relativePath>../../spring-boot-dependencies</relativePath>
</parent>
<artifactId>spring-boot-versions</artifactId>
<packaging>pom</packaging>
<name>Spring Boot Versions</name>
<description>Spring Boot Versions Property File</description>
<url>http://projects.spring.io/spring-boot/</url>
<organization>
<name>Pivotal Software, Inc.</name>
<url>http://www.spring.io</url>
</organization>
<properties>
<main.basedir>${basedir}/../..</main.basedir>
</properties>
<build>
<resources>
<resource>
<directory>${project.build.directory}/generated-resources</directory>
</resource>
</resources>
<plugins>
<plugin>
<artifactId>maven-help-plugin</artifactId>
<executions>
<execution>
<id>generate-effective-dependencies-pom</id>
<phase>generate-resources</phase>
<goals>
<goal>effective-pom</goal>
</goals>
<configuration>
<output>${project.build.directory}/effective-pom/spring-boot-versions.xml</output>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>xml-maven-plugin</artifactId>
<version>1.0</version>
<executions>
<execution>
<goals>
<goal>transform</goal>
</goals>
</execution>
</executions>
<configuration>
<transformationSets>
<transformationSet>
<dir>${project.build.directory}/effective-pom</dir>
<stylesheet>src/main/xslt/dependency-management-to-versions.xsl</stylesheet>
<fileMappers>
<fileMapper
implementation="org.codehaus.plexus.components.io.filemappers.FileExtensionMapper">
<targetExtension>.properties</targetExtension>
</fileMapper>
</fileMappers>
<outputDir>${project.build.directory}/generated-resources</outputDir>
</transformationSet>
</transformationSets>
</configuration>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<executions>
<execution>
<id>attach-artifacts</id>
<phase>package</phase>
<goals>
<goal>attach-artifact</goal>
</goals>
<configuration>
<artifacts>
<artifact>
<file>${project.build.directory}/generated-resources/spring-boot-versions.properties</file>
<type>properties</type>
</artifact>
<artifact>
<file>${project.build.directory}/effective-pom/spring-boot-versions.xml</file>
<type>effective-pom</type>
</artifact>
</artifacts>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>

@ -0,0 +1,21 @@
<?xml version="1.0"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:mvn="http://maven.apache.org/POM/4.0.0"
version="1.0">
<xsl:output method="text" encoding="UTF-8" indent="no"/>
<xsl:template match="/">
<xsl:for-each select="//mvn:dependency">
<xsl:sort select="mvn:groupId"/>
<xsl:sort select="mvn:artifactId"/>
<xsl:copy-of select="mvn:groupId"/>
<xsl:text>\:</xsl:text>
<xsl:copy-of select="mvn:artifactId"/>
<xsl:text>=</xsl:text>
<xsl:copy-of select="mvn:version"/>
<xsl:text>&#xa;</xsl:text>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
Loading…
Cancel
Save