Prior to this commit, the Aether-based GrapeEngine was loaded in the same class loader as the rest of Boot. This led to Aether's and its dependencies' types polluting the application's class path. Most notably, this caused problems with logging as the logging framework could be permaturely initialized. This commit isolates AetherGrapeEngine, Aether and its dependencies into a separate class loader. This is done by customizing the packaging of the CLI's jar file with the internal directory housing all of the types that will be loaded by the separate class loader.
177 lines
5.3 KiB
XML
177 lines
5.3 KiB
XML
<?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>
|
|
<groupId>org.springframework.boot</groupId>
|
|
<artifactId>spring-boot-build</artifactId>
|
|
<version>0.5.0.BUILD-SNAPSHOT</version>
|
|
<packaging>pom</packaging>
|
|
<prerequisites>
|
|
<maven>3.0.0</maven>
|
|
</prerequisites>
|
|
<properties>
|
|
<main.basedir>${basedir}</main.basedir>
|
|
</properties>
|
|
<build>
|
|
<pluginManagement>
|
|
<plugins>
|
|
<plugin>
|
|
<artifactId>maven-antrun-plugin</artifactId>
|
|
<version>1.7</version>
|
|
</plugin>
|
|
</plugins>
|
|
</pluginManagement>
|
|
</build>
|
|
<profiles>
|
|
<profile>
|
|
<id>default</id>
|
|
<activation>
|
|
<activeByDefault>true</activeByDefault>
|
|
</activation>
|
|
<modules>
|
|
<module>spring-boot-dependencies</module>
|
|
<module>spring-boot-parent</module>
|
|
<module>spring-boot-tools</module>
|
|
<module>spring-boot</module>
|
|
<module>spring-boot-autoconfigure</module>
|
|
<module>spring-boot-actuator</module>
|
|
<module>spring-boot-starters</module>
|
|
<module>spring-boot-cli</module>
|
|
<module>spring-boot-cli-grape</module>
|
|
<module>spring-boot-integration-tests</module>
|
|
</modules>
|
|
</profile>
|
|
<profile>
|
|
<id>prepare</id>
|
|
<properties>
|
|
<skipTests>true</skipTests>
|
|
</properties>
|
|
<modules>
|
|
<module>spring-boot-tools</module>
|
|
</modules>
|
|
<build>
|
|
<plugins>
|
|
<plugin>
|
|
<artifactId>maven-antrun-plugin</artifactId>
|
|
<dependencies>
|
|
<dependency>
|
|
<groupId>ant-contrib</groupId>
|
|
<artifactId>ant-contrib</artifactId>
|
|
<version>1.0b3</version>
|
|
<exclusions>
|
|
<exclusion>
|
|
<groupId>ant</groupId>
|
|
<artifactId>ant</artifactId>
|
|
</exclusion>
|
|
</exclusions>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.apache.ant</groupId>
|
|
<artifactId>ant-nodeps</artifactId>
|
|
<version>1.8.1</version>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.tigris.antelope</groupId>
|
|
<artifactId>antelopetasks</artifactId>
|
|
<version>3.2.10</version>
|
|
</dependency>
|
|
</dependencies>
|
|
<executions>
|
|
<execution>
|
|
<id>generate-settings.xml</id>
|
|
<phase>verify</phase>
|
|
<goals>
|
|
<goal>run</goal>
|
|
</goals>
|
|
<inherited>false</inherited>
|
|
<configuration>
|
|
<target>
|
|
<taskdef resource="net/sf/antcontrib/antcontrib.properties" />
|
|
<taskdef name="stringutil" classname="ise.antelope.tasks.StringUtilTask" />
|
|
<var name="version-type" value="${project.version}" />
|
|
<propertyregex property="version-type" override="true"
|
|
input="${version-type}" regexp=".*\.(.*)" replace="\1" />
|
|
<propertyregex property="version-type" override="true"
|
|
input="${version-type}" regexp="(M)\d+" replace="\1ILESTONE" />
|
|
<propertyregex property="version-type" override="true"
|
|
input="${version-type}" regexp="BUILD-(.*)" replace="\1" />
|
|
<stringutil string="${version-type}" property="profile">
|
|
<lowercase />
|
|
</stringutil>
|
|
<echo message="Writing settings for ${profile} profile" />
|
|
<copy file=".settings-template.xml" tofile="settings.xml"
|
|
overwrite="true">
|
|
<filterset>
|
|
<filter token="profile" value="${profile}" />
|
|
</filterset>
|
|
</copy>
|
|
</target>
|
|
</configuration>
|
|
</execution>
|
|
<execution>
|
|
<id>fixup-starter-parent</id>
|
|
<phase>verify</phase>
|
|
<goals>
|
|
<goal>run</goal>
|
|
</goals>
|
|
<inherited>false</inherited>
|
|
<configuration>
|
|
<target>
|
|
<property name="sourceFile"
|
|
value="spring-boot-starters/spring-boot-starter-parent/pom.xml" />
|
|
<xslt in="${sourceFile}" out="${sourceFile}.new" force="true">
|
|
<style>
|
|
<string><![CDATA[
|
|
<xsl:stylesheet version="2.0"
|
|
xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:m="http://maven.apache.org/POM/4.0.0"
|
|
exclude-result-prefixes="m">
|
|
|
|
<xsl:template match="node()|@*">
|
|
<xsl:copy>
|
|
<xsl:apply-templates select="node()|@*" />
|
|
</xsl:copy>
|
|
</xsl:template>
|
|
|
|
<xsl:template
|
|
match="m:properties/m:spring-boot.version/text()">
|
|
<xsl:value-of select="/m:project/m:parent/m:version/text()"/>
|
|
</xsl:template>
|
|
|
|
<xsl:template
|
|
match="m:dependency[m:groupId='org.springframework.boot']/m:version/text()">
|
|
<xsl:text>${spring-boot.version}</xsl:text>
|
|
</xsl:template>
|
|
|
|
<xsl:template
|
|
match="m:plugin[m:groupId='org.springframework.boot']/m:version/text()">
|
|
<xsl:text>${spring-boot.version}</xsl:text>
|
|
</xsl:template>
|
|
|
|
</xsl:stylesheet>
|
|
]]>
|
|
</string>
|
|
</style>
|
|
</xslt>
|
|
<move file="${sourceFile}" tofile="${sourceFile}.old" />
|
|
<move file="${sourceFile}.new" tofile="${sourceFile}" />
|
|
<delete file="${sourceFile}.old" />
|
|
</target>
|
|
</configuration>
|
|
</execution>
|
|
</executions>
|
|
</plugin>
|
|
<plugin>
|
|
<artifactId>maven-surefire-plugin</artifactId>
|
|
<configuration>
|
|
<skip>true</skip>
|
|
</configuration>
|
|
</plugin>
|
|
</plugins>
|
|
</build>
|
|
</profile>
|
|
<profile>
|
|
<id>full</id>
|
|
</profile>
|
|
</profiles>
|
|
</project>
|