Previously, Aether's configuration was largely hard-coded making it
impossible to configure a mirror, provide credentials for accessing
a repository, etc.
This commit adds support for configuring Aether via Maven's
settings.xml file. The support is optional and must be enabled by
grabbing spring-boot-maven-settings in an init script. The Aether
instance that's used when running the application will then be
configured using settings.xml. The settings file is expected to be
found in ${user.home}/.m2/settings.xml.
The configuration of the following items is currently supported:
- Offline
- Proxies
- Mirrors
- Server authentication
- Local repository location
If the support is not enabled, settings.xml does not exist, or
settings.xml does not configure certain things then sensible defaults
are applied.
185 lines
5.5 KiB
XML
185 lines
5.5 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-maven-settings</module>
|
|
</modules>
|
|
</profile>
|
|
<profile>
|
|
<id>integration</id>
|
|
<activation>
|
|
<activeByDefault>true</activeByDefault>
|
|
</activation>
|
|
<modules>
|
|
<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>
|