Author: pete.muir(a)jboss.org
Date: 2008-04-28 13:10:37 -0400 (Mon, 28 Apr 2008)
New Revision: 8056
Added:
trunk/build/ci.settings.xml
trunk/build/settings.xml
Removed:
trunk/build/maven/conf/
trunk/build/settings.xml
Modified:
trunk/build/ci.build.xml
trunk/build/common.build.xml
trunk/build/utilities.build.xml
Log:
Add support for specifying different settings.xml for maven
Modified: trunk/build/ci.build.xml
===================================================================
--- trunk/build/ci.build.xml 2008-04-28 16:48:42 UTC (rev 8055)
+++ trunk/build/ci.build.xml 2008-04-28 17:10:37 UTC (rev 8056)
@@ -10,6 +10,8 @@
<property name="seam.dir" value="${basedir}/../" />
<property name="dist.location" value="${seam.dir}/dist" />
<property name="dist.ref.dir" value="${dist.location}/ref" />
+
+ <property name="maven.settings.xml" location="ci.settings.xml"
/>
<import file="common.build.xml" />
Added: trunk/build/ci.settings.xml
===================================================================
--- trunk/build/ci.settings.xml (rev 0)
+++ trunk/build/ci.settings.xml 2008-04-28 17:10:37 UTC (rev 8056)
@@ -0,0 +1,249 @@
+<!--
+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.
+-->
+
+<!--
+ | This is the configuration file for Maven. It can be specified at two levels:
+ |
+ | 1. User Level. This settings.xml file provides configuration for a single user,
+ | and is normally provided in $HOME/.m2/settings.xml.
+ |
+ | NOTE: This location can be overridden with the system property:
+ |
+ | -Dorg.apache.maven.user-settings=/path/to/user/settings.xml
+ |
+ | 2. Global Level. This settings.xml file provides configuration for all maven
+ | users on a machine (assuming they're all using the same maven
+ | installation). It's normally provided in
+ | ${maven.home}/conf/settings.xml.
+ |
+ | NOTE: This location can be overridden with the system property:
+ |
+ | -Dorg.apache.maven.global-settings=/path/to/global/settings.xml
+ |
+ | The sections in this sample file are intended to give you a running start at
+ | getting the most out of your Maven installation. Where appropriate, the default
+ | values (values used when the setting is not specified) are provided.
+ |
+ |-->
+<settings>
+ <!-- localRepository
+ | The path to the local repository maven will use to store artifacts.
+ |
+ | Default: ~/.m2/repository
+ <localRepository>/path/to/local/repo</localRepository>
+ -->
+
+ <localRepository>${env.REPOSITORY}/.m2/repository</localRepository>
+
+ <!-- interactiveMode
+ | This will determine whether maven prompts you when it needs input. If set to false,
+ | maven will use a sensible default value, perhaps based on some other setting, for
+ | the parameter in question.
+ |
+ | Default: true
+ <interactiveMode>true</interactiveMode>
+ -->
+
+ <!-- offline
+ | Determines whether maven should attempt to connect to the network when executing a
build.
+ | This will have an effect on artifact downloads, artifact deployment, and others.
+ |
+ | Default: false
+ <offline>false</offline>
+ -->
+
+ <!-- proxies
+ | This is a list of proxies which can be used on this machine to connect to the
network.
+ | Unless otherwise specified (by system property or command-line switch), the first
proxy
+ | specification in this list marked as active will be used.
+ |-->
+ <proxies>
+ <!-- proxy
+ | Specification for one proxy, to be used in connecting to the network.
+ |
+ <proxy>
+ <id>optional</id>
+ <active>true</active>
+ <protocol>http</protocol>
+ <username>proxyuser</username>
+ <password>proxypass</password>
+ <host>proxy.host.net</host>
+ <port>80</port>
+ <nonProxyHosts>local.net,some.host.com</nonProxyHosts>
+ </proxy>
+ -->
+ </proxies>
+
+ <!-- servers
+ | This is a list of authentication profiles, keyed by the server-id used within the
system.
+ | Authentication profiles can be used whenever maven must make a connection to a
remote server.
+ |-->
+ <servers>
+ <!-- server
+ | Specifies the authentication information to use when connecting to a particular
server, identified by
+ | a unique name within the system (referred to by the 'id' attribute
below).
+ |
+ | NOTE: You should either specify username/password OR privateKey/passphrase, since
these pairings are
+ | used together.
+ |
+ <server>
+ <id>deploymentRepo</id>
+ <username>repouser</username>
+ <password>repopwd</password>
+ </server>
+ -->
+
+ <!-- Another sample, using keys to authenticate.
+ <server>
+ <id>siteServer</id>
+ <privateKey>/path/to/private/key</privateKey>
+ <passphrase>optional; leave empty if not used.</passphrase>
+ </server>
+ -->
+ </servers>
+
+ <!-- mirrors
+ | This is a list of mirrors to be used in downloading artifacts from remote
repositories.
+ |
+ | It works like this: a POM may declare a repository to use in resolving certain
artifacts.
+ | However, this repository may have problems with heavy traffic at times, so people
have mirrored
+ | it to several places.
+ |
+ | That repository definition will have a unique id, so we can create a mirror
reference for that
+ | repository, to be used as an alternate download site. The mirror site will be the
preferred
+ | server for that repository.
+ |-->
+ <mirrors>
+ <!-- mirror
+ | Specifies a repository mirror site to use instead of a given repository. The
repository that
+ | this mirror serves has an ID that matches the mirrorOf element of this mirror. IDs
are used
+ | for inheritance and direct lookup purposes, and must be unique across the set of
mirrors.
+ |
+ <mirror>
+ <id>mirrorId</id>
+ <mirrorOf>repositoryId</mirrorOf>
+ <name>Human Readable Name for this Mirror.</name>
+ <
url>http://my.repository.com/repo/path</url>
+ </mirror>
+ -->
+ <mirror>
+ <id>fake.mirror.of.central</id>
+ <mirrorOf>central</mirrorOf>
+ <name>Fake mirror of central - reroutes central to
repository.jboss.org</name>
+ <
url>http://repository.jboss.org/maven2</url>
+ </mirror>
+ </mirrors>
+
+ <!-- profiles
+ | This is a list of profiles which can be activated in a variety of ways, and which
can modify
+ | the build process. Profiles provided in the settings.xml are intended to provide
local machine-
+ | specific paths and repository locations which allow the build to work in the local
environment.
+ |
+ | For example, if you have an integration testing plugin - like cactus - that needs to
know where
+ | your Tomcat instance is installed, you can provide a variable here such that the
variable is
+ | dereferenced during the build process to configure the cactus plugin.
+ |
+ | As noted above, profiles can be activated in a variety of ways. One way - the
activeProfiles
+ | section of this document (settings.xml) - will be discussed later. Another way
essentially
+ | relies on the detection of a system property, either matching a particular value for
the property,
+ | or merely testing its existence. Profiles can also be activated by JDK version
prefix, where a
+ | value of '1.4' might activate a profile when the build is executed on a JDK
version of '1.4.2_07'.
+ | Finally, the list of active profiles can be specified directly from the command
line.
+ |
+ | NOTE: For profiles defined in the settings.xml, you are restricted to specifying
only artifact
+ | repositories, plugin repositories, and free-form properties to be used as
configuration
+ | variables for plugins in the POM.
+ |
+ |-->
+ <profiles>
+ <!-- profile
+ | Specifies a set of introductions to the build process, to be activated using one
or more of the
+ | mechanisms described above. For inheritance purposes, and to activate profiles via
<activatedProfiles/>
+ | or the command line, profiles have to have an ID that is unique.
+ |
+ | An encouraged best practice for profile identification is to use a consistent
naming convention
+ | for profiles, such as 'env-dev', 'env-test',
'env-production', 'user-jdcasey', 'user-brett', etc.
+ | This will make it more intuitive to understand what the set of introduced profiles
is attempting
+ | to accomplish, particularly when you only have a list of profile id's for
debug.
+ |
+ | This profile example uses the JDK version to trigger activation, and provides a
JDK-specific repo.
+ <profile>
+ <id>jdk-1.4</id>
+
+ <activation>
+ <jdk>1.4</jdk>
+ </activation>
+
+ <repositories>
+ <repository>
+ <id>jdk14</id>
+ <name>Repository for JDK 1.4 builds</name>
+ <
url>http://www.myhost.com/maven/jdk14</url>
+ <layout>default</layout>
+ <snapshotPolicy>always</snapshotPolicy>
+ </repository>
+ </repositories>
+ </profile>
+ -->
+
+ <!--
+ | Here is another profile, activated by the system property 'target-env'
with a value of 'dev',
+ | which provides a specific path to the Tomcat instance. To use this, your plugin
configuration
+ | might hypothetically look like:
+ |
+ | ...
+ | <plugin>
+ | <groupId>org.myco.myplugins</groupId>
+ | <artifactId>myplugin</artifactId>
+ |
+ | <configuration>
+ | <tomcatLocation>${tomcatPath}</tomcatLocation>
+ | </configuration>
+ | </plugin>
+ | ...
+ |
+ | NOTE: If you just wanted to inject this configuration whenever someone set
'target-env' to
+ | anything, you could just leave off the <value/> inside the
activation-property.
+ |
+ <profile>
+ <id>env-dev</id>
+
+ <activation>
+ <property>
+ <name>target-env</name>
+ <value>dev</value>
+ </property>
+ </activation>
+
+ <properties>
+ <tomcatPath>/path/to/tomcat/instance</tomcatPath>
+ </properties>
+ </profile>
+ -->
+ </profiles>
+
+ <!-- activeProfiles
+ | List of profiles that are active for all builds.
+ |
+ <activeProfiles>
+ <activeProfile>alwaysActiveProfile</activeProfile>
+ <activeProfile>anotherAlwaysActiveProfile</activeProfile>
+ </activeProfiles>
+ -->
+</settings>
Property changes on: trunk/build/ci.settings.xml
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Modified: trunk/build/common.build.xml
===================================================================
--- trunk/build/common.build.xml 2008-04-28 16:48:42 UTC (rev 8055)
+++ trunk/build/common.build.xml 2008-04-28 17:10:37 UTC (rev 8056)
@@ -18,6 +18,10 @@
<property name="tmp.dir" value="${seam.dir}/classes" />
<property name="lib.dir" value="${seam.dir}/lib" />
<property name="endorsed.dir" value="${tmp.dir}/endorsed" />
+
+ <!-- Set the location of the maven settings.xml file -->
+
+ <property name="maven.settings.xml"
location="${build.dir}/settings.xml" />
<property name="embedded.version" value="beta3" />
Deleted: trunk/build/settings.xml
===================================================================
--- trunk/build/settings.xml 2008-04-28 16:48:42 UTC (rev 8055)
+++ trunk/build/settings.xml 2008-04-28 17:10:37 UTC (rev 8056)
@@ -1,24 +0,0 @@
-<settings
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/settings-1.0.0.xsd">
- <profiles>
- <profile>
- <activation>
- <activeByDefault>true</activeByDefault>
- </activation>
- <repositories>
- <repository>
- <id>temporary</id>
- <name>Temporary Local Repository</name>
- <url>file://@tmp.dir@/tmp-repository</url>
- </repository>
- <repository>
- <id>development</id>
- <name>Development Repository</name>
- <url>file://@build.dir@/repository</url>
- </repository>
- </repositories>
- </profile>
- </profiles>
-</settings>
\ No newline at end of file
Copied: trunk/build/settings.xml (from rev 8052, trunk/build/maven/conf/settings.xml)
===================================================================
--- trunk/build/settings.xml (rev 0)
+++ trunk/build/settings.xml 2008-04-28 17:10:37 UTC (rev 8056)
@@ -0,0 +1,247 @@
+<!--
+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.
+-->
+
+<!--
+ | This is the configuration file for Maven. It can be specified at two levels:
+ |
+ | 1. User Level. This settings.xml file provides configuration for a single user,
+ | and is normally provided in $HOME/.m2/settings.xml.
+ |
+ | NOTE: This location can be overridden with the system property:
+ |
+ | -Dorg.apache.maven.user-settings=/path/to/user/settings.xml
+ |
+ | 2. Global Level. This settings.xml file provides configuration for all maven
+ | users on a machine (assuming they're all using the same maven
+ | installation). It's normally provided in
+ | ${maven.home}/conf/settings.xml.
+ |
+ | NOTE: This location can be overridden with the system property:
+ |
+ | -Dorg.apache.maven.global-settings=/path/to/global/settings.xml
+ |
+ | The sections in this sample file are intended to give you a running start at
+ | getting the most out of your Maven installation. Where appropriate, the default
+ | values (values used when the setting is not specified) are provided.
+ |
+ |-->
+<settings>
+ <!-- localRepository
+ | The path to the local repository maven will use to store artifacts.
+ |
+ | Default: ~/.m2/repository
+ <localRepository>/path/to/local/repo</localRepository>
+ -->
+
+ <!-- interactiveMode
+ | This will determine whether maven prompts you when it needs input. If set to false,
+ | maven will use a sensible default value, perhaps based on some other setting, for
+ | the parameter in question.
+ |
+ | Default: true
+ <interactiveMode>true</interactiveMode>
+ -->
+
+ <!-- offline
+ | Determines whether maven should attempt to connect to the network when executing a
build.
+ | This will have an effect on artifact downloads, artifact deployment, and others.
+ |
+ | Default: false
+ <offline>false</offline>
+ -->
+
+ <!-- proxies
+ | This is a list of proxies which can be used on this machine to connect to the
network.
+ | Unless otherwise specified (by system property or command-line switch), the first
proxy
+ | specification in this list marked as active will be used.
+ |-->
+ <proxies>
+ <!-- proxy
+ | Specification for one proxy, to be used in connecting to the network.
+ |
+ <proxy>
+ <id>optional</id>
+ <active>true</active>
+ <protocol>http</protocol>
+ <username>proxyuser</username>
+ <password>proxypass</password>
+ <host>proxy.host.net</host>
+ <port>80</port>
+ <nonProxyHosts>local.net,some.host.com</nonProxyHosts>
+ </proxy>
+ -->
+ </proxies>
+
+ <!-- servers
+ | This is a list of authentication profiles, keyed by the server-id used within the
system.
+ | Authentication profiles can be used whenever maven must make a connection to a
remote server.
+ |-->
+ <servers>
+ <!-- server
+ | Specifies the authentication information to use when connecting to a particular
server, identified by
+ | a unique name within the system (referred to by the 'id' attribute
below).
+ |
+ | NOTE: You should either specify username/password OR privateKey/passphrase, since
these pairings are
+ | used together.
+ |
+ <server>
+ <id>deploymentRepo</id>
+ <username>repouser</username>
+ <password>repopwd</password>
+ </server>
+ -->
+
+ <!-- Another sample, using keys to authenticate.
+ <server>
+ <id>siteServer</id>
+ <privateKey>/path/to/private/key</privateKey>
+ <passphrase>optional; leave empty if not used.</passphrase>
+ </server>
+ -->
+ </servers>
+
+ <!-- mirrors
+ | This is a list of mirrors to be used in downloading artifacts from remote
repositories.
+ |
+ | It works like this: a POM may declare a repository to use in resolving certain
artifacts.
+ | However, this repository may have problems with heavy traffic at times, so people
have mirrored
+ | it to several places.
+ |
+ | That repository definition will have a unique id, so we can create a mirror
reference for that
+ | repository, to be used as an alternate download site. The mirror site will be the
preferred
+ | server for that repository.
+ |-->
+ <mirrors>
+ <!-- mirror
+ | Specifies a repository mirror site to use instead of a given repository. The
repository that
+ | this mirror serves has an ID that matches the mirrorOf element of this mirror. IDs
are used
+ | for inheritance and direct lookup purposes, and must be unique across the set of
mirrors.
+ |
+ <mirror>
+ <id>mirrorId</id>
+ <mirrorOf>repositoryId</mirrorOf>
+ <name>Human Readable Name for this Mirror.</name>
+ <
url>http://my.repository.com/repo/path</url>
+ </mirror>
+ -->
+ <mirror>
+ <id>fake.mirror.of.central</id>
+ <mirrorOf>central</mirrorOf>
+ <name>Fake mirror of central - reroutes central to
repository.jboss.org</name>
+ <
url>http://repository.jboss.org/maven2</url>
+ </mirror>
+ </mirrors>
+
+ <!-- profiles
+ | This is a list of profiles which can be activated in a variety of ways, and which
can modify
+ | the build process. Profiles provided in the settings.xml are intended to provide
local machine-
+ | specific paths and repository locations which allow the build to work in the local
environment.
+ |
+ | For example, if you have an integration testing plugin - like cactus - that needs to
know where
+ | your Tomcat instance is installed, you can provide a variable here such that the
variable is
+ | dereferenced during the build process to configure the cactus plugin.
+ |
+ | As noted above, profiles can be activated in a variety of ways. One way - the
activeProfiles
+ | section of this document (settings.xml) - will be discussed later. Another way
essentially
+ | relies on the detection of a system property, either matching a particular value for
the property,
+ | or merely testing its existence. Profiles can also be activated by JDK version
prefix, where a
+ | value of '1.4' might activate a profile when the build is executed on a JDK
version of '1.4.2_07'.
+ | Finally, the list of active profiles can be specified directly from the command
line.
+ |
+ | NOTE: For profiles defined in the settings.xml, you are restricted to specifying
only artifact
+ | repositories, plugin repositories, and free-form properties to be used as
configuration
+ | variables for plugins in the POM.
+ |
+ |-->
+ <profiles>
+ <!-- profile
+ | Specifies a set of introductions to the build process, to be activated using one
or more of the
+ | mechanisms described above. For inheritance purposes, and to activate profiles via
<activatedProfiles/>
+ | or the command line, profiles have to have an ID that is unique.
+ |
+ | An encouraged best practice for profile identification is to use a consistent
naming convention
+ | for profiles, such as 'env-dev', 'env-test',
'env-production', 'user-jdcasey', 'user-brett', etc.
+ | This will make it more intuitive to understand what the set of introduced profiles
is attempting
+ | to accomplish, particularly when you only have a list of profile id's for
debug.
+ |
+ | This profile example uses the JDK version to trigger activation, and provides a
JDK-specific repo.
+ <profile>
+ <id>jdk-1.4</id>
+
+ <activation>
+ <jdk>1.4</jdk>
+ </activation>
+
+ <repositories>
+ <repository>
+ <id>jdk14</id>
+ <name>Repository for JDK 1.4 builds</name>
+ <
url>http://www.myhost.com/maven/jdk14</url>
+ <layout>default</layout>
+ <snapshotPolicy>always</snapshotPolicy>
+ </repository>
+ </repositories>
+ </profile>
+ -->
+
+ <!--
+ | Here is another profile, activated by the system property 'target-env'
with a value of 'dev',
+ | which provides a specific path to the Tomcat instance. To use this, your plugin
configuration
+ | might hypothetically look like:
+ |
+ | ...
+ | <plugin>
+ | <groupId>org.myco.myplugins</groupId>
+ | <artifactId>myplugin</artifactId>
+ |
+ | <configuration>
+ | <tomcatLocation>${tomcatPath}</tomcatLocation>
+ | </configuration>
+ | </plugin>
+ | ...
+ |
+ | NOTE: If you just wanted to inject this configuration whenever someone set
'target-env' to
+ | anything, you could just leave off the <value/> inside the
activation-property.
+ |
+ <profile>
+ <id>env-dev</id>
+
+ <activation>
+ <property>
+ <name>target-env</name>
+ <value>dev</value>
+ </property>
+ </activation>
+
+ <properties>
+ <tomcatPath>/path/to/tomcat/instance</tomcatPath>
+ </properties>
+ </profile>
+ -->
+ </profiles>
+
+ <!-- activeProfiles
+ | List of profiles that are active for all builds.
+ |
+ <activeProfiles>
+ <activeProfile>alwaysActiveProfile</activeProfile>
+ <activeProfile>anotherAlwaysActiveProfile</activeProfile>
+ </activeProfiles>
+ -->
+</settings>
Modified: trunk/build/utilities.build.xml
===================================================================
--- trunk/build/utilities.build.xml 2008-04-28 16:48:42 UTC (rev 8055)
+++ trunk/build/utilities.build.xml 2008-04-28 17:10:37 UTC (rev 8056)
@@ -31,7 +31,7 @@
<attribute name="scope" />
<attribute name="pom" />
<sequential>
- <artifact:dependencies pathId="@{scope}.(a){id}.path"
filesetId="@{scope}.(a){id}.fileset"
versionsId="@{scope}.(a){id}.versions" useScope="@{scope}"
settingsFile="${maven.dir}/conf/settings.xml">
+ <artifact:dependencies pathId="@{scope}.(a){id}.path"
filesetId="@{scope}.(a){id}.fileset"
versionsId="@{scope}.(a){id}.versions" useScope="@{scope}"
settingsFile="${maven.settings.xml}">
<pom file="@{pom}" />
</artifact:dependencies>
</sequential>
@@ -42,7 +42,7 @@
<attribute name="scope" />
<element name="inline" implicit="true"/>
<sequential>
- <artifact:dependencies pathId="@{scope}.(a){id}.path"
filesetId="@{scope}.(a){id}.fileset"
versionsId="@{scope}.(a){id}.versions" useScope="@{scope}"
settingsFile="${maven.dir}/conf/settings.xml">
+ <artifact:dependencies pathId="@{scope}.(a){id}.path"
filesetId="@{scope}.(a){id}.fileset"
versionsId="@{scope}.(a){id}.versions" useScope="@{scope}"
settingsFile="${maven.settings.xml}">
<inline />
</artifact:dependencies>
</sequential>
@@ -53,7 +53,7 @@
<attribute name="scope" />
<attribute name="pom" />
<sequential>
- <artifact:dependencies pathId="@{scope}.(a){id}.path"
filesetId="@{scope}.(a){id}.fileset"
versionsId="@{scope}.(a){id}.versions" useScope="@{scope}"
sourcesFilesetId="@{scope}.(a){id}.source.fileset"
settingsFile="${maven.dir}/conf/settings.xml">
+ <artifact:dependencies pathId="@{scope}.(a){id}.path"
filesetId="@{scope}.(a){id}.fileset"
versionsId="@{scope}.(a){id}.versions" useScope="@{scope}"
sourcesFilesetId="@{scope}.(a){id}.source.fileset"
settingsFile="${maven.settings.xml}">
<pom file="@{pom}" />
</artifact:dependencies>
</sequential>
@@ -198,7 +198,9 @@
<sysproperty key="classworlds.conf"
value="${maven.dir}/bin/m2.conf" />
<sysproperty key="maven.home" value="${maven.dir}" />
<arg line="-Dseam.version=${complete.version}" />
+ <arg line="--settings ${maven.settings.xml}" />
<!--<arg line="-q" />-->
+ <arg line="-X" />
<args />
<arg line="@{target}" />
</java>