mirror of https://github.com/apache/maven.git
603 lines
20 KiB
XML
603 lines
20 KiB
XML
<?xml version="1.0" encoding="UTF-8"?>
|
|
|
|
<!--
|
|
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.
|
|
-->
|
|
|
|
<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.apache.maven.its</groupId>
|
|
<artifactId>core-its</artifactId>
|
|
<version>2.1-SNAPSHOT</version>
|
|
</parent>
|
|
|
|
<artifactId>core-it-suite</artifactId>
|
|
|
|
<name>Maven ITs</name>
|
|
<description>The effective Maven Integration Tests suite.</description>
|
|
|
|
<!--
|
|
By default, the project just packages the tests in an artifact. To actually run them, activate the profile "run-its":
|
|
|
|
mvn clean test -Prun-its
|
|
|
|
This will subject the Maven version running the build to the integration tests. If you would like to test a different
|
|
Maven distribution, you can use the system property "mavenHome" to specify the path of the Maven distribution to test:
|
|
|
|
mvn clean test -Prun-its -DmavenHome=<maven-under-test>
|
|
|
|
Alternatively, you can just specify the version of a previously installed/deployed Maven distribution which will be
|
|
downloaded, unpacked and tested:
|
|
|
|
mvn clean test -Prun-its -DmavenVersion=2.2.1
|
|
|
|
It's also possible to point the ITs at an already downloaded Maven distribution:
|
|
|
|
mvn clean test -Prun-its -DmavenDistro=<path-to-bin-archive>
|
|
|
|
To run the ITs using embedded Maven 3.x, additionally activate the profile "embedded".
|
|
|
|
ITs that don't require to fork Maven can also be run from the IDE using the Maven projects from the workspace if the
|
|
Maven dependencies are added to the test class path.
|
|
|
|
If you're behind a proxy, use the system properties proxy.host, proxy.port, proxy.user, proxy.pass and
|
|
proxy.nonProxyHosts to specify the required proxy setup for the ITs. Alternatively, set the system property
|
|
maven.it.central to a URL of a local repository manager (anonymous authentication only) that proxies the
|
|
required artifacts.
|
|
-->
|
|
|
|
<properties>
|
|
<surefireMemory>-Xmx384m</surefireMemory>
|
|
<!-- The original Maven distribution to test. -->
|
|
<mavenHome>${maven.home}</mavenHome>
|
|
<!-- The (possibly instrumented copy of the) Maven distribution we actually
|
|
use for the tests. -->
|
|
<preparedMavenHome>${mavenHome}</preparedMavenHome>
|
|
<!-- default properties used to filter the global settings -->
|
|
<maven.it.central>http://repo1.maven.org/maven2</maven.it.central>
|
|
<proxy.active>false</proxy.active>
|
|
<proxy.host>localhost</proxy.host>
|
|
<proxy.port>80</proxy.port>
|
|
<proxy.type>none</proxy.type>
|
|
<proxy.user></proxy.user>
|
|
<proxy.pass></proxy.pass>
|
|
<proxy.nonProxyHosts>localhost</proxy.nonProxyHosts>
|
|
<slf4jVersion>1.6.1</slf4jVersion>
|
|
<jetty9Version>9.0.4.v20130625</jetty9Version>
|
|
</properties>
|
|
|
|
<dependencies>
|
|
<dependency>
|
|
<groupId>junit</groupId>
|
|
<artifactId>junit</artifactId>
|
|
<version>4.12</version>
|
|
<!-- NOTE: Use compile scope for transitivity. -->
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.codehaus.plexus</groupId>
|
|
<artifactId>plexus-utils</artifactId>
|
|
<version>1.5.8</version>
|
|
<!-- NOTE: Use compile scope for transitivity. -->
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.apache.maven.its</groupId>
|
|
<artifactId>maven-it-helper</artifactId>
|
|
<version>2.1-SNAPSHOT</version>
|
|
<!-- TODO: not transitive in tests artifact, so must be left in main
|
|
scope <scope>test</scope> -->
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.apache.maven.shared</groupId>
|
|
<artifactId>maven-verifier</artifactId>
|
|
<!-- TODO: not transitive in tests artifact, so must be left in main
|
|
scope <scope>test</scope> -->
|
|
</dependency>
|
|
<!-- Should be fine to introduce this here, even if we use the embedder
|
|
as it should be using an isolated classloader Used to simplify tests that
|
|
provide a test HTTP server. -->
|
|
<dependency>
|
|
<groupId>org.mortbay.jetty</groupId>
|
|
<artifactId>jetty</artifactId>
|
|
<version>6.1.14</version>
|
|
<!-- TODO: not transitive in tests artifact, so must be left in main
|
|
scope <scope>test</scope> -->
|
|
<exclusions>
|
|
<exclusion>
|
|
<artifactId>servlet-api-2.5</artifactId>
|
|
<groupId>org.mortbay.jetty</groupId>
|
|
</exclusion>
|
|
</exclusions>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.apache.maven.shared</groupId>
|
|
<artifactId>maven-shared-utils</artifactId>
|
|
<version>0.9</version>
|
|
</dependency>
|
|
|
|
<!-- Jetty9 server for testing -->
|
|
<dependency>
|
|
<groupId>org.eclipse.jetty</groupId>
|
|
<artifactId>jetty-server</artifactId>
|
|
<version>${jetty9Version}</version>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.eclipse.jetty</groupId>
|
|
<artifactId>jetty-security</artifactId>
|
|
<version>${jetty9Version}</version>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.eclipse.jetty</groupId>
|
|
<artifactId>jetty-util</artifactId>
|
|
<version>${jetty9Version}</version>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.eclipse.jetty.orbit</groupId>
|
|
<artifactId>javax.servlet</artifactId>
|
|
<version>3.0.0.v201112011016</version>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>com.google.guava</groupId>
|
|
<artifactId>guava</artifactId>
|
|
<version>16.0</version>
|
|
</dependency>
|
|
</dependencies>
|
|
|
|
<build>
|
|
<testResources>
|
|
<testResource>
|
|
<directory>src/test/resources</directory>
|
|
</testResource>
|
|
<testResource>
|
|
<directory>src/test/resources-filtered</directory>
|
|
<filtering>true</filtering>
|
|
</testResource>
|
|
</testResources>
|
|
<plugins>
|
|
<plugin>
|
|
<groupId>org.apache.maven.plugins</groupId>
|
|
<artifactId>maven-surefire-plugin</artifactId>
|
|
<configuration>
|
|
<includes>
|
|
<include>**/IntegrationTestSuite.java</include>
|
|
</includes>
|
|
<forkMode>never</forkMode>
|
|
<skip>true</skip>
|
|
<systemProperties>
|
|
<property>
|
|
<name>maven.version</name>
|
|
<value>${maven.version}</value>
|
|
</property>
|
|
<property>
|
|
<name>maven.home</name>
|
|
<value>${preparedMavenHome}</value>
|
|
</property>
|
|
<property>
|
|
<name>maven.it.global-settings.dir</name>
|
|
<value>${project.build.testOutputDirectory}</value>
|
|
</property>
|
|
</systemProperties>
|
|
</configuration>
|
|
</plugin>
|
|
<plugin>
|
|
<groupId>org.apache.maven.plugins</groupId>
|
|
<artifactId>maven-jar-plugin</artifactId>
|
|
<executions>
|
|
<execution>
|
|
<goals>
|
|
<goal>test-jar</goal>
|
|
</goals>
|
|
</execution>
|
|
</executions>
|
|
</plugin>
|
|
</plugins>
|
|
</build>
|
|
|
|
<profiles>
|
|
<profile>
|
|
<id>parallel</id>
|
|
<build>
|
|
<plugins>
|
|
<plugin>
|
|
<groupId>org.apache.maven.plugins</groupId>
|
|
<artifactId>maven-surefire-plugin</artifactId>
|
|
<configuration>
|
|
<parallel>classes</parallel>
|
|
<threadCount>6</threadCount>
|
|
</configuration>
|
|
</plugin>
|
|
</plugins>
|
|
</build>
|
|
</profile>
|
|
<profile>
|
|
<id>run-its</id>
|
|
<build>
|
|
<plugins>
|
|
<plugin>
|
|
<groupId>org.apache.maven.plugins</groupId>
|
|
<artifactId>maven-surefire-plugin</artifactId>
|
|
<configuration>
|
|
<skip>false</skip>
|
|
</configuration>
|
|
</plugin>
|
|
</plugins>
|
|
</build>
|
|
<dependencies>
|
|
<!-- not really used but will force download in the local repo used -->
|
|
<dependency>
|
|
<groupId>org.apache.maven.wagon</groupId>
|
|
<artifactId>wagon-webdav-jackrabbit</artifactId>
|
|
<version>2.0</version>
|
|
<scope>test</scope>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.slf4j</groupId>
|
|
<artifactId>slf4j-api</artifactId>
|
|
<version>${slf4jVersion}</version>
|
|
<scope>test</scope>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.slf4j</groupId>
|
|
<artifactId>slf4j-simple</artifactId>
|
|
<version>${slf4jVersion}</version>
|
|
<scope>test</scope>
|
|
</dependency>
|
|
</dependencies>
|
|
</profile>
|
|
<profile>
|
|
<id>maven-repo-local</id>
|
|
<activation>
|
|
<property>
|
|
<name>maven.repo.local</name>
|
|
</property>
|
|
</activation>
|
|
<build>
|
|
<plugins>
|
|
<plugin>
|
|
<artifactId>maven-surefire-plugin</artifactId>
|
|
<configuration>
|
|
<systemProperties combine.children="append">
|
|
<property>
|
|
<!-- Pass this through to the tests (if set!) to have them
|
|
pick the right repository -->
|
|
<name>maven.repo.local</name>
|
|
<value>${maven.repo.local}</value>
|
|
</property>
|
|
</systemProperties>
|
|
</configuration>
|
|
</plugin>
|
|
</plugins>
|
|
</build>
|
|
</profile>
|
|
<profile>
|
|
<id>maven-repo-local-layout</id>
|
|
<activation>
|
|
<property>
|
|
<name>maven.repo.local.layout</name>
|
|
</property>
|
|
</activation>
|
|
<build>
|
|
<plugins>
|
|
<plugin>
|
|
<artifactId>maven-surefire-plugin</artifactId>
|
|
<configuration>
|
|
<systemProperties combine.children="append">
|
|
<property>
|
|
<!-- Pass this through to the tests (if set!) to have them
|
|
pick the right repository layout -->
|
|
<name>maven.repo.local.layout</name>
|
|
<value>${maven.repo.local.layout}</value>
|
|
</property>
|
|
</systemProperties>
|
|
</configuration>
|
|
</plugin>
|
|
</plugins>
|
|
</build>
|
|
</profile>
|
|
<profile>
|
|
<id>jdk-properties</id>
|
|
<activation>
|
|
<jdk>(,1.8)</jdk>
|
|
</activation>
|
|
<properties>
|
|
<surefireMemory>-Xmx384m -XX:MaxPermSize=192m</surefireMemory>
|
|
</properties>
|
|
</profile>
|
|
<profile>
|
|
<id>embedded</id>
|
|
<build>
|
|
<plugins>
|
|
<plugin>
|
|
<artifactId>maven-surefire-plugin</artifactId>
|
|
<configuration>
|
|
<skip>false</skip>
|
|
<forkMode>once</forkMode>
|
|
<argLine>${surefireMemory}
|
|
-Dcom.sun.management.jmxremote=true</argLine>
|
|
<!-- NOTE: Maven plugins have access to the system class path
|
|
so keep it clean -->
|
|
<useSystemClassLoader>false</useSystemClassLoader>
|
|
<systemProperties combine.children="append">
|
|
<property>
|
|
<name>verifier.forkMode</name>
|
|
<value>auto</value>
|
|
</property>
|
|
<property>
|
|
<name>emma.rt.control</name>
|
|
<value>false</value>
|
|
</property>
|
|
</systemProperties>
|
|
</configuration>
|
|
</plugin>
|
|
</plugins>
|
|
</build>
|
|
</profile>
|
|
<profile>
|
|
<id>maven-from-repo</id>
|
|
<activation>
|
|
<property>
|
|
<name>mavenVersion</name>
|
|
</property>
|
|
</activation>
|
|
<properties>
|
|
<mavenHome>${project.build.directory}/apache-maven</mavenHome>
|
|
</properties>
|
|
<build>
|
|
<plugins>
|
|
<plugin>
|
|
<artifactId>maven-surefire-plugin</artifactId>
|
|
<configuration>
|
|
<skip>false</skip>
|
|
</configuration>
|
|
</plugin>
|
|
<plugin>
|
|
<groupId>org.apache.maven.plugins</groupId>
|
|
<artifactId>maven-dependency-plugin</artifactId>
|
|
<version>2.10</version>
|
|
<executions>
|
|
<execution>
|
|
<id>download-maven-distro</id>
|
|
<phase>process-test-resources</phase>
|
|
<goals>
|
|
<goal>copy</goal>
|
|
</goals>
|
|
<configuration>
|
|
<artifactItems>
|
|
<artifactItem>
|
|
<groupId>org.apache.maven</groupId>
|
|
<artifactId>apache-maven</artifactId>
|
|
<version>${mavenVersion}</version>
|
|
<classifier>bin</classifier>
|
|
<type>zip</type>
|
|
<destFileName>maven-bin.zip</destFileName>
|
|
</artifactItem>
|
|
</artifactItems>
|
|
<outputDirectory>${project.build.directory}</outputDirectory>
|
|
</configuration>
|
|
</execution>
|
|
</executions>
|
|
</plugin>
|
|
<plugin>
|
|
<groupId>org.apache.maven.plugins</groupId>
|
|
<artifactId>maven-antrun-plugin</artifactId>
|
|
<version>1.3</version>
|
|
<executions>
|
|
<execution>
|
|
<id>unpack-maven-distro</id>
|
|
<phase>process-test-resources</phase>
|
|
<goals>
|
|
<goal>run</goal>
|
|
</goals>
|
|
<configuration>
|
|
<tasks>
|
|
<delete dir="${mavenHome}" />
|
|
<unzip src="${project.build.directory}/maven-bin.zip"
|
|
dest="${mavenHome}">
|
|
<globmapper from="apache-maven-${mavenVersion}/*"
|
|
to="*" handledirsep="true" />
|
|
</unzip>
|
|
<chmod dir="${mavenHome}/bin" perm="ugo+rx"
|
|
includes="mvn,mvnDebug" />
|
|
</tasks>
|
|
</configuration>
|
|
</execution>
|
|
</executions>
|
|
</plugin>
|
|
</plugins>
|
|
</build>
|
|
</profile>
|
|
<profile>
|
|
<id>maven-distro</id>
|
|
<activation>
|
|
<property>
|
|
<name>mavenDistro</name>
|
|
</property>
|
|
</activation>
|
|
<properties>
|
|
<mavenHome>${project.build.directory}/apache-maven</mavenHome>
|
|
</properties>
|
|
<build>
|
|
<plugins>
|
|
<plugin>
|
|
<artifactId>maven-surefire-plugin</artifactId>
|
|
<configuration>
|
|
<skip>false</skip>
|
|
</configuration>
|
|
</plugin>
|
|
<plugin>
|
|
<groupId>org.apache.maven.plugins</groupId>
|
|
<artifactId>maven-antrun-plugin</artifactId>
|
|
<version>1.6</version>
|
|
<executions>
|
|
<execution>
|
|
<id>unpack-maven-distro</id>
|
|
<phase>process-test-resources</phase>
|
|
<goals>
|
|
<goal>run</goal>
|
|
</goals>
|
|
<configuration>
|
|
<tasks>
|
|
<delete dir="${mavenHome}" />
|
|
<unzip src="${mavenDistro}" dest="${mavenHome}">
|
|
<regexpmapper from="^([^/]+)/(.*)$"
|
|
to="\2" handledirsep="true" />
|
|
</unzip>
|
|
<chmod dir="${mavenHome}/bin" perm="ugo+rx"
|
|
includes="mvn,mvnDebug" />
|
|
</tasks>
|
|
</configuration>
|
|
</execution>
|
|
</executions>
|
|
</plugin>
|
|
</plugins>
|
|
</build>
|
|
</profile>
|
|
<profile>
|
|
<id>emma</id>
|
|
<properties>
|
|
<preparedMavenHome>${project.build.directory}/distro</preparedMavenHome>
|
|
</properties>
|
|
<build>
|
|
<plugins>
|
|
<plugin>
|
|
<groupId>org.apache.maven.plugins</groupId>
|
|
<artifactId>maven-surefire-plugin</artifactId>
|
|
<configuration>
|
|
<skip>false</skip>
|
|
</configuration>
|
|
</plugin>
|
|
<plugin>
|
|
<groupId>org.apache.maven.plugins</groupId>
|
|
<artifactId>maven-antrun-plugin</artifactId>
|
|
<version>1.3</version>
|
|
<executions>
|
|
<execution>
|
|
<id>copy-maven-distro</id>
|
|
<phase>process-test-classes</phase>
|
|
<goals>
|
|
<goal>run</goal>
|
|
</goals>
|
|
<configuration>
|
|
<tasks>
|
|
<delete dir="${preparedMavenHome}" />
|
|
<copy todir="${preparedMavenHome}" overwrite="true">
|
|
<fileset dir="${mavenHome}" />
|
|
</copy>
|
|
<chmod dir="${preparedMavenHome}/bin" perm="ugo+rx"
|
|
includes="mvn,mvnDebug" />
|
|
</tasks>
|
|
</configuration>
|
|
</execution>
|
|
</executions>
|
|
</plugin>
|
|
<plugin>
|
|
<groupId>org.apache.maven.plugins</groupId>
|
|
<artifactId>maven-dependency-plugin</artifactId>
|
|
<version>2.0</version>
|
|
<executions>
|
|
<execution>
|
|
<id>inject-emma-into-core-realm</id>
|
|
<phase>process-test-classes</phase>
|
|
<goals>
|
|
<goal>copy</goal>
|
|
</goals>
|
|
<configuration>
|
|
<artifactItems>
|
|
<artifactItem>
|
|
<groupId>emma</groupId>
|
|
<artifactId>emma</artifactId>
|
|
<version>2.1.5320</version>
|
|
</artifactItem>
|
|
</artifactItems>
|
|
<outputDirectory>${preparedMavenHome}/lib</outputDirectory>
|
|
</configuration>
|
|
</execution>
|
|
</executions>
|
|
</plugin>
|
|
<plugin>
|
|
<groupId>org.sonatype.maven.plugin</groupId>
|
|
<artifactId>emma4it-maven-plugin</artifactId>
|
|
<version>1.2</version>
|
|
<configuration>
|
|
<jarSets>
|
|
<jarSet>
|
|
<directory>${preparedMavenHome}/lib</directory>
|
|
<includes>
|
|
<include>maven*.jar</include>
|
|
</includes>
|
|
</jarSet>
|
|
</jarSets>
|
|
<includes>
|
|
<include>org.apache.maven.*</include>
|
|
</includes>
|
|
<excludes>
|
|
<exclude>*.io.xpp3.*</exclude>
|
|
<exclude>*Exception</exclude>
|
|
</excludes>
|
|
</configuration>
|
|
<executions>
|
|
<execution>
|
|
<id>instrument</id>
|
|
<phase>process-test-classes</phase>
|
|
<goals>
|
|
<goal>instrument</goal>
|
|
</goals>
|
|
</execution>
|
|
<execution>
|
|
<id>report</id>
|
|
<phase>test</phase>
|
|
<goals>
|
|
<goal>report</goal>
|
|
</goals>
|
|
</execution>
|
|
</executions>
|
|
</plugin>
|
|
<plugin>
|
|
<groupId>org.apache.maven.plugins</groupId>
|
|
<artifactId>maven-clean-plugin</artifactId>
|
|
<configuration>
|
|
<filesets>
|
|
<fileset>
|
|
<directory>${basedir}</directory>
|
|
<includes>
|
|
<include>coverage.ec</include>
|
|
</includes>
|
|
</fileset>
|
|
</filesets>
|
|
</configuration>
|
|
</plugin>
|
|
</plugins>
|
|
</build>
|
|
</profile>
|
|
<profile>
|
|
<id>proxy</id>
|
|
<activation>
|
|
<property>
|
|
<name>proxy.host</name>
|
|
</property>
|
|
</activation>
|
|
<properties>
|
|
<proxy.type>http</proxy.type>
|
|
<proxy.active>true</proxy.active>
|
|
</properties>
|
|
</profile>
|
|
</profiles>
|
|
</project>
|