o a complex sample project to test a new import model that should make it far easier for IDE integration. I'm tired of looking at duplicated code.

git-svn-id: https://svn.apache.org/repos/asf/maven/components/trunk@573090 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Jason van Zyl 2007-09-05 22:52:27 +00:00
parent 02d205134b
commit 558f841229
70 changed files with 8639 additions and 0 deletions

View File

@ -0,0 +1,44 @@
<?xml version="1.0"?><!--
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>
<modelVersion>4.0.0</modelVersion>
<parent>
<artifactId>maven</artifactId>
<groupId>org.apache.maven</groupId>
<version>2.1-SNAPSHOT</version>
</parent>
<artifactId>maven-build-context</artifactId>
<name>Maven Build Context</name>
<dependencies>
<dependency>
<groupId>org.codehaus.plexus</groupId>
<artifactId>plexus-container-default</artifactId>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
</dependencies>
</project>

View File

@ -0,0 +1,28 @@
<!--
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.
-->
<component-set>
<components>
<component>
<role>org.apache.maven.context.BuildContextManager</role>
<role-hint>default</role-hint>
<implementation>org.apache.maven.context.DefaultBuildContextManager</implementation>
</component>
</components>
</component-set>

View File

@ -0,0 +1,155 @@
<?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/maven-v4_0_0.xsd">
<parent>
<artifactId>maven</artifactId>
<groupId>org.apache.maven</groupId>
<version>2.1-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>maven-core</artifactId>
<name>Maven Core</name>
<dependencies>
<dependency>
<groupId>org.apache.maven</groupId>
<artifactId>maven-lifecycle</artifactId>
<version>2.1-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.apache.maven</groupId>
<artifactId>maven-build-context</artifactId>
<version>2.1-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.apache.maven</groupId>
<artifactId>maven-settings</artifactId>
<version>2.1-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.apache.maven.reporting</groupId>
<artifactId>maven-reporting-api</artifactId>
<version>2.1-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.apache.maven</groupId>
<artifactId>maven-profile</artifactId>
<version>2.1-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.apache.maven</groupId>
<artifactId>maven-model</artifactId>
<version>2.1-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.apache.maven.artifact</groupId>
<artifactId>maven-artifact</artifactId>
</dependency>
<dependency>
<groupId>org.codehaus.plexus</groupId>
<artifactId>plexus-container-default</artifactId>
</dependency>
<dependency>
<groupId>org.apache.maven</groupId>
<artifactId>maven-project</artifactId>
<version>2.1-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>commons-cli</groupId>
<artifactId>commons-cli</artifactId>
<version>1.0</version>
<exclusions>
<exclusion>
<artifactId>commons-lang</artifactId>
<groupId>commons-lang</groupId>
</exclusion>
<exclusion>
<artifactId>commons-logging</artifactId>
<groupId>commons-logging</groupId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.apache.maven</groupId>
<artifactId>maven-plugin-api</artifactId>
<version>2.1-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.apache.maven</groupId>
<artifactId>maven-plugin-descriptor</artifactId>
<version>2.1-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.codehaus.plexus</groupId>
<artifactId>plexus-interactivity-api</artifactId>
<version>1.0-alpha-4</version>
<exclusions>
<exclusion>
<artifactId>plexus-utils</artifactId>
<groupId>plexus</groupId>
</exclusion>
<exclusion>
<artifactId>plexus-container-default</artifactId>
<groupId>org.codehaus.plexus</groupId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.apache.maven</groupId>
<artifactId>maven-monitor</artifactId>
<version>2.1-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.codehaus.plexus</groupId>
<artifactId>plexus-utils</artifactId>
</dependency>
<dependency>
<groupId>org.codehaus.plexus</groupId>
<artifactId>plexus-classworlds</artifactId>
</dependency>
<dependency>
<groupId>org.codehaus.plexus</groupId>
<artifactId>plexus-active-collections</artifactId>
<version>1.0-beta-1</version>
</dependency>
<dependency>
<groupId>easymock</groupId>
<artifactId>easymock</artifactId>
<version>1.2_Java1.3</version>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<excludes>
<exclude>**/testutils/**</exclude>
</excludes>
</configuration>
</plugin>
</plugins>
</build>
</project>

View File

@ -0,0 +1,172 @@
<?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.
-->
<paramdoc 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 ../../../../../../../maven-plugin-parameter-documenter/target/generated-site/xsd/paramdoc-1.0.0.xsd ">
<expressions>
<expression>
<syntax>project.distributionManagementArtifactRepository</syntax>
<configuration>
<![CDATA[
<distributionManagement>
<!-- use the following if you're not using a snapshot version. -->
<repository>
<id>repo</id>
<name>Repository Name</name>
<url>scp://host/path/to/repo</url>
</repository>
<!-- use the following if you ARE using a snapshot version. -->
<snapshotRepository>
<id>repo</id>
<name>Repository Name</name>
<url>scp://host/path/to/repo</url>
</snapshotRepository>
</distributionManagement>
]]></configuration>
<description> This is the ArtifactRepository used to deploy artifacts built by this
Maven.
</description>
</expression>
<expression>
<syntax>project.artifact</syntax>
<configuration>
<![CDATA[
<groupId>project.group</groupId>
<artifactId>project-artifact</artifactId>
<version>0.0.0.0</version>
<packaging>type</packaging>
]]></configuration>
<description> This is the Artifact instance created from the essential project
attributes: groupId, artifactId, version, and packaging (with a default packaging of
'jar').
</description>
</expression>
<expression>
<syntax>project.parent</syntax>
<configuration>
<![CDATA[
<parent>
<groupId>project.group</groupId>
<artifactId>project-artifact</artifactId>
<version>0.0.0.0</version>
</parent>
]]></configuration>
<description> This is the MavenProject instance for the parent of the current POM.
</description>
</expression>
<expression>
<syntax>project.file</syntax>
<description> This is the File instance that refers to the location of the current POM on
disk.
</description>
</expression>
<expression>
<syntax>project.artifacts</syntax>
<configuration>
<![CDATA[
<dependencies>
...
</dependencies>
]]></configuration>
<description>
<![CDATA[
This is a set of Artifact instances resolved from the set of dependencies for
the current project.
NOTE: This will likely contain much more than the direct dependencies of the
current POM, since Maven uses transitive, or chained, dependency resolution.
]]></description>
</expression>
<expression>
<syntax>project.parentArtifact</syntax>
<configuration>
<![CDATA[
<parent>
<groupId>project.group</groupId>
<artifactId>project-artifact</artifactId>
<version>0.0.0.0</version>
</parent>
]]></configuration>
<description> This is the Artifact instance for the parent of the current POM.
</description>
</expression>
<expression>
<syntax>project.pluginArtifacts</syntax>
<configuration>
<![CDATA[
<build>
<plugins>
...
</plugins>
</build>
]]></configuration>
<description>
<![CDATA[
This is the list of Artifact instances for plugins used in the current build
for this project.
NOTE: This list may contain plugin Artifacts which are implied by the current POM's
packaging and the lifecycle phase being built.
]]></description>
</expression>
<expression>
<syntax>project.remoteArtifactRepositories</syntax>
<configuration>
<![CDATA[
<repositories>
...
</repositories>
]]></configuration>
<description>
<![CDATA[
This is a list of ArtifactRepository instances used to resolve the Artifacts associated
with the current POM.
NOTE: This list will contain entries for repositories specified by ancestor POMs, including
the default built-in super-POM, which is the parent of all POMs.
]]></description>
</expression>
<expression>
<syntax>project.pluginArtifactRepositories</syntax>
<configuration>
<![CDATA[
<pluginRepositories>
...
</pluginRepositories>
]]></configuration>
<description>
<![CDATA[
This is a list of ArtifactRepository instances used to resolve the Artifacts associated
with plugins used in building the current POM.
NOTE: This list will contain entries for repositories specified by ancestor POMs, including
the default built-in super-POM, which is the parent of all POMs.
]]></description>
</expression>
<expression>
<syntax>project.attachedArtifacts</syntax>
<description>
<![CDATA[
This is a list of attachments to the main artifact produced by building the current POM.
Attachments are derived works, based on the main build process, such as an ejb-client jar,
project sources jar, etc.
]]></description>
</expression>
</expressions>
</paramdoc>

View File

@ -0,0 +1,48 @@
<?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.
-->
<paramdoc 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 ../../../../../../../maven-plugin-parameter-documenter/target/generated-site/xsd/paramdoc-1.0.0.xsd ">
<expressions>
<expression>
<syntax>localRepository</syntax>
<configuration>
<![CDATA[
Inside ~/.m2/settings.xml:
<localRepository>/path/to/local/repository</localRepository>
]]></configuration>
<description>The ArtifactRepository instance referencing the local artifact
repository.</description>
<cliOptions>
<cliOption>
<key>-Dmaven.repo.local=/path/to/local/repo</key>
<value>Override the local repository location on a per-build basis.</value>
</cliOption>
</cliOptions>
</expression>
<expression>
<syntax>reactorProjects</syntax>
<description>This is the current list of projects being built by
Maven.</description>
</expression>
</expressions>
</paramdoc>

View File

@ -0,0 +1,53 @@
<?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.
-->
<paramdoc 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 ../../../../../../../maven-plugin-parameter-documenter/target/generated-site/xsd/paramdoc-1.0.0.xsd ">
<expressions>
<expression>
<syntax>settings.offline</syntax>
<configuration>
<![CDATA[
<offline>true</offline>
]]></configuration>
<description>
<![CDATA[
Flags the system as offline, to prevent accessing the network to resolve artifacts or execute plugins.
NOTE: It's also possible to switch to offline mode on a per-build basis, using the '-o' command-line option.
]]></description>
</expression>
<expression>
<syntax>settings.interactiveMode</syntax>
<configuration>
<![CDATA[
<interactiveMode>true</interactiveMode>
]]></configuration>
<description>
<![CDATA[
If false, flags the system to skip prompting the user for any information, or holding up the build
waiting for any input.
NOTE: It's also possible to switch to batch (ie. non-interactive) mode using the '-B' command-line option.
]]></description>
</expression>
</expressions>
</paramdoc>

View File

@ -0,0 +1,193 @@
<plugin>
<description>Maven Internal State-Management Plugins</description>
<groupId>org.apache.maven.plugins.internal</groupId>
<artifactId>maven-state-management</artifactId>
<version>2.1</version>
<goalPrefix>statemgmt</goalPrefix>
<isolatedRealm>false</isolatedRealm>
<inheritedByDefault>true</inheritedByDefault>
<mojos>
<mojo>
<goal>start-fork</goal>
<description>Setup the appropriate build state to initiate a forked execution.</description>
<requiresDirectInvocation>false</requiresDirectInvocation>
<requiresProject>true</requiresProject>
<requiresReports>false</requiresReports>
<aggregator>false</aggregator>
<requiresOnline>false</requiresOnline>
<inheritedByDefault>true</inheritedByDefault>
<implementation>org.apache.maven.lifecycle.statemgmt.StartForkedExecutionMojo</implementation>
<language>java</language>
<instantiationStrategy>per-lookup</instantiationStrategy>
<executionStrategy>once-per-session</executionStrategy>
<parameters>
<parameter>
<name>project</name>
<type>org.apache.maven.project.MavenProject</type>
<required>true</required>
<editable>false</editable>
<description>The current MavenProject instance, which will have a new executionProject set after execution.</description>
</parameter>
<parameter>
<name>forkId</name>
<type>int</type>
<required>true</required>
<editable>true</editable>
<description>The current fork identifier.</description>
</parameter>
</parameters>
<configuration>
<project implementation="org.apache.maven.project.MavenProject" default-value="${project}"/>
<forkId implementation="int" default-value="-1">${forkId}</forkId>
</configuration>
<requirements>
<requirement>
<role>org.apache.maven.context.BuildContextManager</role>
<field-name>buildContextManager</field-name>
</requirement>
</requirements>
</mojo>
<mojo>
<goal>end-fork</goal>
<description>Restore the non-fork currentProject instance, for use in the forking mojo.</description>
<requiresDirectInvocation>false</requiresDirectInvocation>
<requiresProject>true</requiresProject>
<requiresReports>false</requiresReports>
<aggregator>false</aggregator>
<requiresOnline>false</requiresOnline>
<inheritedByDefault>true</inheritedByDefault>
<implementation>org.apache.maven.lifecycle.statemgmt.EndForkedExecutionMojo</implementation>
<language>java</language>
<instantiationStrategy>per-lookup</instantiationStrategy>
<executionStrategy>once-per-session</executionStrategy>
<parameters>
<parameter>
<name>forkId</name>
<type>int</type>
<required>true</required>
<editable>true</editable>
<description>The current fork identifier.</description>
</parameter>
</parameters>
<configuration>
<forkId implementation="int" default-value="-1">${forkId}</forkId>
</configuration>
<requirements>
<requirement>
<role>org.apache.maven.context.BuildContextManager</role>
<field-name>buildContextManager</field-name>
</requirement>
</requirements>
</mojo>
<mojo>
<goal>clear-fork-context</goal>
<description>Tear down any build state used during the previous forked execution.</description>
<requiresDirectInvocation>false</requiresDirectInvocation>
<requiresProject>true</requiresProject>
<requiresReports>false</requiresReports>
<aggregator>false</aggregator>
<requiresOnline>false</requiresOnline>
<inheritedByDefault>true</inheritedByDefault>
<implementation>org.apache.maven.lifecycle.statemgmt.ClearForkedContextMojo</implementation>
<language>java</language>
<instantiationStrategy>per-lookup</instantiationStrategy>
<executionStrategy>once-per-session</executionStrategy>
<parameters>
<parameter>
<name>project</name>
<type>org.apache.maven.project.MavenProject</type>
<required>true</required>
<editable>false</editable>
<description>The current MavenProject instance, which will have the current executionProject cleared after execution.</description>
</parameter>
<parameter>
<name>forkId</name>
<type>int</type>
<required>true</required>
<editable>true</editable>
<description>The current fork identifier.</description>
</parameter>
</parameters>
<configuration>
<project implementation="org.apache.maven.project.MavenProject" default-value="${project}"/>
<forkId implementation="int" default-value="-1">${forkId}</forkId>
</configuration>
</mojo>
<mojo>
<goal>resolve-late-bound-plugin</goal>
<description>Resolve a late-bound plugin during a build, right before it is to be used.</description>
<requiresDirectInvocation>false</requiresDirectInvocation>
<requiresProject>true</requiresProject>
<requiresReports>false</requiresReports>
<aggregator>false</aggregator>
<requiresOnline>false</requiresOnline>
<inheritedByDefault>true</inheritedByDefault>
<implementation>org.apache.maven.lifecycle.statemgmt.ResolveLateBoundPluginMojo</implementation>
<language>java</language>
<instantiationStrategy>per-lookup</instantiationStrategy>
<executionStrategy>once-per-session</executionStrategy>
<parameters>
<parameter>
<name>project</name>
<type>org.apache.maven.project.MavenProject</type>
<required>true</required>
<editable>false</editable>
<description>The current MavenProject instance, for building a new MojoBinding instance.</description>
</parameter>
<parameter>
<name>groupId</name>
<type>java.lang.String</type>
<required>true</required>
<editable>true</editable>
<description>The plugin's groupId.</description>
</parameter>
<parameter>
<name>artifactId</name>
<type>java.lang.String</type>
<required>true</required>
<editable>true</editable>
<description>The plugin's artifactId.</description>
</parameter>
<parameter>
<name>version</name>
<type>java.lang.String</type>
<required>false</required>
<editable>true</editable>
<description>The plugin's version.</description>
</parameter>
<parameter>
<name>goal</name>
<type>java.lang.String</type>
<required>true</required>
<editable>true</editable>
<description>The mojo's goal that we're looking for, as an extra validation step.</description>
</parameter>
<parameter>
<name>includeReportConfig</name>
<type>boolean</type>
<required>false</required>
<editable>true</editable>
<description>Whether the mojo should include plugin-configuration from the reporting section.</description>
</parameter>
</parameters>
<configuration>
<project implementation="org.apache.maven.project.MavenProject" default-value="${project}"/>
<groupId implementation="java.lang.String">${groupId}</groupId>
<artifactId implementation="java.lang.String">${artifactId}</artifactId>
<version implementation="java.lang.String">${version}</version>
<goal implementation="java.lang.String">${goal}</goal>
<includeReportConfig>false</includeReportConfig>
</configuration>
<requirements>
<requirement>
<role>org.apache.maven.plugin.loader.PluginLoader</role>
<field-name>pluginLoader</field-name>
</requirement>
<requirement>
<role>org.apache.maven.lifecycle.binding.MojoBindingFactory</role>
<field-name>bindingFactory</field-name>
</requirement>
</requirements>
</mojo>
</mojos>
</plugin>

View File

@ -0,0 +1,719 @@
<!--
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.
-->
<component-set>
<components>
<component>
<role>org.apache.maven.extension.BuildExtensionScanner</role>
<role-hint>default</role-hint>
<implementation>org.apache.maven.extension.DefaultBuildExtensionScanner</implementation>
<requirements>
<requirement>
<role>org.apache.maven.extension.ExtensionManager</role>
</requirement>
<requirement>
<role>org.apache.maven.project.interpolation.ModelInterpolator</role>
</requirement>
<requirement>
<role>org.apache.maven.project.build.model.ModelLineageBuilder</role>
<role-hint>default</role-hint>
</requirement>
<requirement>
<role>org.apache.maven.context.BuildContextManager</role>
<role-hint>default</role-hint>
</requirement>
<requirement>
<role>org.apache.maven.project.MavenProjectBuilder</role>
</requirement>
</requirements>
</component>
<component>
<role>org.apache.maven.ArtifactFilterManager</role>
<implementation>org.apache.maven.DefaultArtifactFilterManager</implementation>
</component>
<component>
<role>org.apache.maven.plugin.PluginManager</role>
<implementation>org.apache.maven.plugin.DefaultPluginManager</implementation>
<requirements>
<requirement>
<role>org.apache.maven.context.BuildContextManager</role>
</requirement>
<requirement>
<role>org.apache.maven.ArtifactFilterManager</role>
</requirement>
<requirement>
<role>org.apache.maven.project.path.PathTranslator</role>
</requirement>
<requirement>
<role>org.apache.maven.plugin.MavenPluginCollector</role>
</requirement>
<requirement>
<role>org.apache.maven.plugin.version.PluginVersionManager</role>
<role-hint>default</role-hint>
</requirement>
<requirement>
<role>org.apache.maven.artifact.factory.ArtifactFactory</role>
</requirement>
<requirement>
<role>org.apache.maven.artifact.resolver.ArtifactResolver</role>
<role-hint>project-cache-aware</role-hint>
</requirement>
<requirement>
<role>org.apache.maven.artifact.metadata.ArtifactMetadataSource</role>
<role-hint>default</role-hint>
</requirement>
<requirement>
<role>org.apache.maven.plugin.PluginMappingManager</role>
</requirement>
<requirement>
<role>org.apache.maven.execution.RuntimeInformation</role>
</requirement>
<requirement>
<role>org.apache.maven.project.MavenProjectBuilder</role>
</requirement>
</requirements>
</component>
<component>
<role>org.apache.maven.extension.ExtensionManager</role>
<implementation>org.apache.maven.extension.DefaultExtensionManager</implementation>
<requirements>
<requirement>
<role>org.apache.maven.ArtifactFilterManager</role>
</requirement>
<requirement>
<role>org.apache.maven.artifact.factory.ArtifactFactory</role>
</requirement>
<requirement>
<role>org.apache.maven.artifact.resolver.ArtifactResolver</role>
<role-hint>project-cache-aware</role-hint>
</requirement>
<requirement>
<role>org.apache.maven.artifact.metadata.ArtifactMetadataSource</role>
<role-hint>default</role-hint>
</requirement>
<requirement>
<role>org.apache.maven.artifact.manager.WagonManager</role>
<role-hint>default</role-hint>
</requirement>
</requirements>
</component>
<component>
<role>org.apache.maven.plugin.PluginMappingManager</role>
<implementation>org.apache.maven.plugin.DefaultPluginMappingManager</implementation>
<requirements>
<requirement>
<role>org.apache.maven.artifact.repository.metadata.RepositoryMetadataManager</role>
</requirement>
</requirements>
</component>
<component>
<role>org.apache.maven.Maven</role>
<implementation>org.apache.maven.DefaultMaven</implementation>
<requirements>
<requirement>
<role>org.apache.maven.extension.BuildExtensionScanner</role>
<role-hint>default</role-hint>
</requirement>
<requirement>
<role>org.apache.maven.context.BuildContextManager</role>
<role-hint>default</role-hint>
</requirement>
<requirement>
<role>org.apache.maven.project.MavenProjectBuilder</role>
</requirement>
<requirement>
<role>org.apache.maven.lifecycle.LifecycleExecutor</role>
</requirement>
<requirement>
<role>org.apache.maven.execution.RuntimeInformation</role>
</requirement>
</requirements>
</component>
<component>
<role>org.apache.maven.execution.RuntimeInformation</role>
<implementation>org.apache.maven.execution.DefaultRuntimeInformation</implementation>
</component>
<!--
|
|MojoExecutionExceptionDiagnoser
|
-->
<component>
<role>org.apache.maven.usability.diagnostics.ErrorDiagnoser</role>
<role-hint>MojoExecutionExceptionDiagnoser</role-hint>
<implementation>org.apache.maven.usability.MojoExecutionExceptionDiagnoser</implementation>
</component>
<!--
|
|MojoFailureExceptionDiagnoser
|
-->
<component>
<role>org.apache.maven.usability.diagnostics.ErrorDiagnoser</role>
<role-hint>MojoFailureExceptionDiagnoser</role-hint>
<implementation>org.apache.maven.usability.MojoFailureExceptionDiagnoser</implementation>
</component>
<!--
|
|ProjectBuildDiagnoser
|
-->
<component>
<role>org.apache.maven.usability.diagnostics.ErrorDiagnoser</role>
<role-hint>ProjectBuildDiagnoser</role-hint>
<implementation>org.apache.maven.usability.ProjectBuildDiagnoser</implementation>
</component>
<!--
|
|ProfileActivationDiagnoser
|
-->
<component>
<role>org.apache.maven.usability.diagnostics.ErrorDiagnoser</role>
<role-hint>ProfileActivationDiagnoser</role-hint>
<implementation>org.apache.maven.usability.ProfileActivationDiagnoser</implementation>
</component>
<!--
|
|PluginConfigurationDiagnoser
|
-->
<component>
<role>org.apache.maven.usability.diagnostics.ErrorDiagnoser</role>
<role-hint>PluginConfigurationDiagnoser</role-hint>
<implementation>org.apache.maven.usability.PluginConfigurationDiagnoser</implementation>
</component>
<!--
|
|ArtifactNotFoundDiagnoser
|
-->
<component>
<role>org.apache.maven.usability.diagnostics.ErrorDiagnoser</role>
<role-hint>ArtifactNotFoundDiagnoser</role-hint>
<implementation>org.apache.maven.usability.ArtifactNotFoundDiagnoser</implementation>
<requirements>
<requirement>
<role>org.apache.maven.artifact.manager.WagonManager</role>
</requirement>
</requirements>
</component>
<!--
|
|ArtifactResolverDiagnoser
|
-->
<component>
<role>org.apache.maven.usability.diagnostics.ErrorDiagnoser</role>
<role-hint>ArtifactResolverDiagnoser</role-hint>
<implementation>org.apache.maven.usability.ArtifactResolverDiagnoser</implementation>
<requirements>
<requirement>
<role>org.apache.maven.artifact.manager.WagonManager</role>
</requirement>
</requirements>
</component>
<!--
|
|InvalidArtifactDiagnoser
|
-->
<component>
<role>org.apache.maven.usability.diagnostics.ErrorDiagnoser</role>
<role-hint>InvalidArtifactDiagnoser</role-hint>
<implementation>org.apache.maven.usability.InvalidArtifactDiagnoser</implementation>
</component>
<!--
|
| Lifecycle executor
|
-->
<component>
<role>org.apache.maven.lifecycle.LifecycleExecutor</role>
<implementation>org.apache.maven.lifecycle.DefaultLifecycleExecutor</implementation>
<requirements>
<requirement>
<role>org.apache.maven.context.BuildContextManager</role>
</requirement>
<requirement>
<role>org.apache.maven.plugin.loader.PluginLoader</role>
</requirement>
<requirement>
<role>org.apache.maven.plugin.PluginManager</role>
</requirement>
<requirement>
<role>org.apache.maven.artifact.handler.manager.ArtifactHandlerManager</role>
</requirement>
<requirement>
<role>org.apache.maven.lifecycle.plan.BuildPlanner</role>
</requirement>
<requirement>
<role>org.apache.maven.lifecycle.binding.MojoBindingFactory</role>
</requirement>
</requirements>
</component>
<!-- TODO: issues with the lifecycle:
- manually configured lifecycles will not pick up any later additions to the defaults where they are intended to extend defaults (have configuration <includeDefaults/> ?)
-->
<component>
<role>org.apache.maven.lifecycle.mapping.LifecycleMapping</role>
<role-hint>pom</role-hint>
<implementation>org.apache.maven.lifecycle.mapping.DefaultLifecycleMapping</implementation>
<configuration>
<lifecycles>
<lifecycle>
<id>default</id>
<!-- START SNIPPET: pom-lifecycle -->
<phases>
<package>org.apache.maven.plugins:maven-site-plugin:attach-descriptor</package>
<install>org.apache.maven.plugins:maven-install-plugin:install</install>
<deploy>org.apache.maven.plugins:maven-deploy-plugin:deploy</deploy>
</phases>
<optional-mojos>
<optional-mojo>org.apache.maven.plugins:maven-site-plugin:attach-descriptor</optional-mojo>
</optional-mojos>
<!-- END SNIPPET: pom-lifecycle -->
</lifecycle>
</lifecycles>
</configuration>
</component>
<component>
<role>org.apache.maven.lifecycle.mapping.LifecycleMapping</role>
<role-hint>jar</role-hint>
<implementation>org.apache.maven.lifecycle.mapping.DefaultLifecycleMapping</implementation>
<configuration>
<lifecycles>
<lifecycle>
<id>default</id>
<!-- START SNIPPET: jar-lifecycle -->
<phases>
<process-resources>org.apache.maven.plugins:maven-resources-plugin:resources</process-resources>
<compile>org.apache.maven.plugins:maven-compiler-plugin:compile</compile>
<process-test-resources>
org.apache.maven.plugins:maven-resources-plugin:testResources
</process-test-resources>
<test-compile>org.apache.maven.plugins:maven-compiler-plugin:testCompile</test-compile>
<test>org.apache.maven.plugins:maven-surefire-plugin:test</test>
<package>
org.apache.maven.plugins:maven-jar-plugin:jar
</package>
<install>org.apache.maven.plugins:maven-install-plugin:install</install>
<deploy>org.apache.maven.plugins:maven-deploy-plugin:deploy</deploy>
</phases>
<!-- END SNIPPET: jar-lifecycle -->
</lifecycle>
</lifecycles>
</configuration>
</component>
<component>
<role>org.apache.maven.lifecycle.mapping.LifecycleMapping</role>
<role-hint>maven-plugin</role-hint>
<implementation>org.apache.maven.lifecycle.mapping.DefaultLifecycleMapping</implementation>
<configuration>
<lifecycles>
<lifecycle>
<id>default</id>
<!-- START SNIPPET: maven-plugin-lifecycle -->
<phases>
<generate-resources>org.apache.maven.plugins:maven-plugin-plugin:descriptor</generate-resources>
<process-resources>org.apache.maven.plugins:maven-resources-plugin:resources</process-resources>
<compile>org.apache.maven.plugins:maven-compiler-plugin:compile</compile>
<process-test-resources>
org.apache.maven.plugins:maven-resources-plugin:testResources
</process-test-resources>
<test-compile>org.apache.maven.plugins:maven-compiler-plugin:testCompile</test-compile>
<test>org.apache.maven.plugins:maven-surefire-plugin:test</test>
<package>
org.apache.maven.plugins:maven-jar-plugin:jar,
org.apache.maven.plugins:maven-plugin-plugin:addPluginArtifactMetadata
</package>
<install>
org.apache.maven.plugins:maven-install-plugin:install,
org.apache.maven.plugins:maven-plugin-plugin:updateRegistry
</install>
<deploy>
org.apache.maven.plugins:maven-deploy-plugin:deploy
</deploy>
</phases>
<!-- END SNIPPET: maven-plugin-lifecycle -->
</lifecycle>
</lifecycles>
</configuration>
</component>
<component>
<role>org.apache.maven.lifecycle.mapping.LifecycleMapping</role>
<role-hint>ejb</role-hint>
<implementation>org.apache.maven.lifecycle.mapping.DefaultLifecycleMapping</implementation>
<configuration>
<lifecycles>
<lifecycle>
<id>default</id>
<!-- START SNIPPET: ejb-lifecycle -->
<phases>
<process-resources>org.apache.maven.plugins:maven-resources-plugin:resources</process-resources>
<compile>org.apache.maven.plugins:maven-compiler-plugin:compile</compile>
<process-test-resources>
org.apache.maven.plugins:maven-resources-plugin:testResources
</process-test-resources>
<test-compile>org.apache.maven.plugins:maven-compiler-plugin:testCompile</test-compile>
<test>org.apache.maven.plugins:maven-surefire-plugin:test</test>
<package>
org.apache.maven.plugins:maven-ejb-plugin:ejb
</package>
<install>org.apache.maven.plugins:maven-install-plugin:install</install>
<deploy>org.apache.maven.plugins:maven-deploy-plugin:deploy</deploy>
</phases>
<!-- END SNIPPET: ejb-lifecycle -->
</lifecycle>
</lifecycles>
</configuration>
</component>
<component>
<role>org.apache.maven.lifecycle.mapping.LifecycleMapping</role>
<role-hint>war</role-hint>
<implementation>org.apache.maven.lifecycle.mapping.DefaultLifecycleMapping</implementation>
<configuration>
<lifecycles>
<lifecycle>
<id>default</id>
<!-- START SNIPPET: war-lifecycle -->
<phases>
<process-resources>org.apache.maven.plugins:maven-resources-plugin:resources</process-resources>
<compile>org.apache.maven.plugins:maven-compiler-plugin:compile</compile>
<process-test-resources>
org.apache.maven.plugins:maven-resources-plugin:testResources
</process-test-resources>
<test-compile>org.apache.maven.plugins:maven-compiler-plugin:testCompile</test-compile>
<test>org.apache.maven.plugins:maven-surefire-plugin:test</test>
<package>org.apache.maven.plugins:maven-war-plugin:war</package>
<install>org.apache.maven.plugins:maven-install-plugin:install</install>
<deploy>org.apache.maven.plugins:maven-deploy-plugin:deploy</deploy>
</phases>
<!-- END SNIPPET: war-lifecycle -->
</lifecycle>
</lifecycles>
</configuration>
</component>
<component>
<role>org.apache.maven.lifecycle.mapping.LifecycleMapping</role>
<role-hint>ear</role-hint>
<implementation>org.apache.maven.lifecycle.mapping.DefaultLifecycleMapping</implementation>
<configuration>
<lifecycles>
<lifecycle>
<id>default</id>
<!-- START SNIPPET: ear-lifecycle -->
<phases>
<generate-resources>
org.apache.maven.plugins:maven-ear-plugin:generate-application-xml
</generate-resources>
<process-resources>org.apache.maven.plugins:maven-resources-plugin:resources</process-resources>
<package>org.apache.maven.plugins:maven-ear-plugin:ear</package>
<install>org.apache.maven.plugins:maven-install-plugin:install</install>
<deploy>org.apache.maven.plugins:maven-deploy-plugin:deploy</deploy>
</phases>
<!-- END SNIPPET: ear-lifecycle -->
</lifecycle>
</lifecycles>
</configuration>
</component>
<component>
<role>org.apache.maven.lifecycle.mapping.LifecycleMapping</role>
<role-hint>rar</role-hint>
<implementation>org.apache.maven.lifecycle.mapping.DefaultLifecycleMapping</implementation>
<configuration>
<lifecycles>
<lifecycle>
<id>default</id>
<!-- START SNIPPET: rar-lifecycle -->
<phases>
<process-resources>org.apache.maven.plugins:maven-resources-plugin:resources</process-resources>
<compile>org.apache.maven.plugins:maven-compiler-plugin:compile</compile>
<process-test-resources>
org.apache.maven.plugins:maven-resources-plugin:testResources
</process-test-resources>
<test-compile>org.apache.maven.plugins:maven-compiler-plugin:testCompile</test-compile>
<test>org.apache.maven.plugins:maven-surefire-plugin:test</test>
<package>org.apache.maven.plugins:maven-rar-plugin:rar</package>
<install>org.apache.maven.plugins:maven-install-plugin:install</install>
<deploy>org.apache.maven.plugins:maven-deploy-plugin:deploy</deploy>
</phases>
<!-- END SNIPPET: rar-lifecycle -->
</lifecycle>
</lifecycles>
</configuration>
</component>
<component>
<role>org.apache.maven.lifecycle.mapping.LifecycleMapping</role>
<role-hint>par</role-hint>
<implementation>org.apache.maven.lifecycle.mapping.DefaultLifecycleMapping</implementation>
<configuration>
<!-- START SNIPPET: par-lifecycle -->
<phases>
<process-resources>org.apache.maven.plugins:maven-resources-plugin:resources</process-resources>
<compile>org.apache.maven.plugins:maven-compiler-plugin:compile</compile>
<process-test-resources>org.apache.maven.plugins:maven-resources-plugin:testResources</process-test-resources>
<test-compile>org.apache.maven.plugins:maven-compiler-plugin:testCompile</test-compile>
<test>org.apache.maven.plugins:maven-surefire-plugin:test</test>
<package>
org.apache.maven.plugins:maven-par-plugin:par
</package>
<install>org.apache.maven.plugins:maven-install-plugin:install</install>
<deploy>org.apache.maven.plugins:maven-deploy-plugin:deploy</deploy>
</phases>
<!-- END SNIPPET: par-lifecycle -->
</configuration>
</component>
<component>
<role>org.apache.maven.lifecycle.mapping.LifecycleMapping</role>
<role-hint>ejb3</role-hint>
<implementation>org.apache.maven.lifecycle.mapping.DefaultLifecycleMapping</implementation>
<configuration>
<!-- START SNIPPET: ejb3-lifecycle -->
<phases>
<process-resources>org.apache.maven.plugins:maven-resources-plugin:resources</process-resources>
<compile>org.apache.maven.plugins:maven-compiler-plugin:compile</compile>
<process-test-resources>org.apache.maven.plugins:maven-resources-plugin:testResources</process-test-resources>
<test-compile>org.apache.maven.plugins:maven-compiler-plugin:testCompile</test-compile>
<test>org.apache.maven.plugins:maven-surefire-plugin:test</test>
<package>
org.apache.maven.plugins:maven-ejb3-plugin:ejb3
</package>
<install>org.apache.maven.plugins:maven-install-plugin:install</install>
<deploy>org.apache.maven.plugins:maven-deploy-plugin:deploy</deploy>
</phases>
<!-- END SNIPPET: ejb3-lifecycle -->
</configuration>
</component>
<component>
<role>org.apache.maven.plugin.version.PluginVersionManager</role>
<role-hint>default</role-hint>
<implementation>org.apache.maven.plugin.version.DefaultPluginVersionManager</implementation>
<instantiation-strategy>per-lookup</instantiation-strategy>
<requirements>
<requirement>
<role>org.apache.maven.artifact.metadata.ArtifactMetadataSource</role>
<role-hint>default</role-hint>
</requirement>
<requirement>
<role>org.apache.maven.artifact.factory.ArtifactFactory</role>
</requirement>
<requirement>
<role>org.apache.maven.project.MavenProjectBuilder</role>
</requirement>
<requirement>
<role>org.apache.maven.execution.RuntimeInformation</role>
</requirement>
</requirements>
</component>
<component>
<role>org.codehaus.plexus.collections.ActiveMap</role>
<role-hint>lifecycle-loaders-by-packaging</role-hint>
<implementation>org.codehaus.plexus.collections.DefaultActiveMap</implementation>
<configuration>
<role>org.apache.maven.lifecycle.LifecycleBindingLoader</role>
</configuration>
</component>
<component>
<role>org.codehaus.plexus.collections.ActiveMap</role>
<role-hint>legacy-lifecycle-mappings-by-packaging</role-hint>
<implementation>org.codehaus.plexus.collections.DefaultActiveMap</implementation>
<configuration>
<role>org.apache.maven.lifecycle.mapping.LifecycleMapping</role>
</configuration>
</component>
<component>
<role>org.apache.maven.plugin.loader.PluginLoader</role>
<role-hint>default</role-hint>
<implementation>org.apache.maven.plugin.loader.DefaultPluginLoader</implementation>
<requirements>
<requirement>
<role>org.apache.maven.plugin.MavenPluginCollector</role>
</requirement>
<requirement>
<role>org.apache.maven.plugin.PluginManager</role>
</requirement>
<requirement>
<role>org.apache.maven.plugin.PluginMappingManager</role>
</requirement>
<requirement>
<role>org.apache.maven.context.BuildContextManager</role>
</requirement>
</requirements>
</component>
<component>
<role>org.apache.maven.lifecycle.binding.LifecycleBindingManager</role>
<role-hint>default</role-hint>
<implementation>org.apache.maven.lifecycle.binding.DefaultLifecycleBindingManager</implementation>
<requirements>
<requirement>
<role>org.apache.maven.plugin.loader.PluginLoader</role>
</requirement>
<requirement>
<role>org.codehaus.plexus.collections.ActiveMap</role>
<role-hint>lifecycle-loaders-by-packaging</role-hint>
<field-name>bindingsByPackaging</field-name>
</requirement>
<requirement>
<role>org.codehaus.plexus.collections.ActiveMap</role>
<role-hint>legacy-lifecycle-mappings-by-packaging</role-hint>
<field-name>legacyMappingsByPackaging</field-name>
</requirement>
<requirement>
<role>org.apache.maven.lifecycle.binding.MojoBindingFactory</role>
</requirement>
<requirement>
<role>org.apache.maven.lifecycle.binding.LegacyLifecycleMappingParser</role>
</requirement>
</requirements>
<configuration>
<legacyLifecycles>
<legacyLifecycle>
<id>default</id>
<!-- START SNIPPET: lifecycle -->
<phases>
<phase>validate</phase>
<phase>initialize</phase>
<phase>generate-sources</phase>
<phase>process-sources</phase>
<phase>generate-resources</phase>
<phase>process-resources</phase>
<phase>compile</phase>
<phase>process-classes</phase>
<phase>generate-test-sources</phase>
<phase>process-test-sources</phase>
<phase>generate-test-resources</phase>
<phase>process-test-resources</phase>
<phase>test-compile</phase>
<phase>process-test-classes</phase>
<phase>test</phase>
<phase>prepare-package</phase>
<phase>package</phase>
<phase>pre-integration-test</phase>
<phase>integration-test</phase>
<phase>post-integration-test</phase>
<phase>verify</phase>
<phase>install</phase>
<phase>deploy</phase>
</phases>
<!-- END SNIPPET: lifecycle -->
</legacyLifecycle>
<legacyLifecycle>
<id>clean</id>
<phases>
<phase>pre-clean</phase>
<phase>clean</phase>
<phase>post-clean</phase>
</phases>
<default-phases>
<clean>org.apache.maven.plugins:maven-clean-plugin:clean</clean>
</default-phases>
</legacyLifecycle>
<legacyLifecycle>
<id>site</id>
<phases>
<phase>pre-site</phase>
<phase>site</phase>
<phase>post-site</phase>
<phase>site-deploy</phase>
</phases>
<default-phases>
<site>org.apache.maven.plugins:maven-site-plugin:site</site>
<site-deploy>org.apache.maven.plugins:maven-site-plugin:deploy</site-deploy>
</default-phases>
</legacyLifecycle>
</legacyLifecycles>
<!-- START SNIPPET: default-reports -->
<defaultReports>
<report>org.apache.maven.plugins:maven-project-info-reports-plugin</report>
<!-- TODO: currently in mojo - should they be defaults any more?
<report>org.apache.maven.plugins:maven-checkstyle-plugin</report>
<report>org.apache.maven.plugins:maven-javadoc-plugin</report>
<report>org.apache.maven.plugins:maven-changelog-plugin</report>
<report>org.apache.maven.plugins:maven-surefire-report-plugin</report>
<report>org.apache.maven.plugins:maven-jdepend-plugin</report>
<report>org.apache.maven.plugins:maven-jxr-plugin</report>
<report>org.apache.maven.plugins:maven-taglist-plugin</report>
-->
</defaultReports>
<!-- END SNIPPET: default-reports -->
</configuration>
</component>
<component>
<role>org.apache.maven.lifecycle.plan.BuildPlanner</role>
<role-hint>default</role-hint>
<implementation>org.apache.maven.lifecycle.plan.DefaultBuildPlanner</implementation>
<requirements>
<requirement>
<role>org.apache.maven.plugin.loader.PluginLoader</role>
</requirement>
<requirement>
<role>org.apache.maven.lifecycle.binding.LifecycleBindingManager</role>
</requirement>
<requirement>
<role>org.apache.maven.lifecycle.binding.MojoBindingFactory</role>
</requirement>
</requirements>
</component>
<component>
<role>org.apache.maven.lifecycle.binding.MojoBindingFactory</role>
<role-hint>default</role-hint>
<implementation>org.apache.maven.lifecycle.binding.DefaultMojoBindingFactory</implementation>
<requirements>
<requirement>
<role>org.apache.maven.plugin.loader.PluginLoader</role>
</requirement>
</requirements>
</component>
<component>
<role>org.apache.maven.lifecycle.binding.LegacyLifecycleMappingParser</role>
<role-hint>default</role-hint>
<implementation>org.apache.maven.lifecycle.binding.LegacyLifecycleMappingParser</implementation>
<requirements>
<requirement>
<role>org.apache.maven.lifecycle.binding.MojoBindingFactory</role>
</requirement>
</requirements>
</component>
</components>
</component-set>

View File

@ -0,0 +1,37 @@
<!--
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.
-->
<plexus>
<component-discoverer-manager implementation="org.codehaus.plexus.component.discovery.DefaultComponentDiscovererManager">
<listeners>
<listener implementation="org.codehaus.plexus.component.discovery.DiscoveryListenerDescriptor">
<role>org.apache.maven.plugin.MavenPluginCollector</role>
</listener>
</listeners>
<component-discoverers>
<component-discoverer implementation="org.apache.maven.plugin.MavenPluginDiscoverer"/>
</component-discoverers>
</component-discoverer-manager>
<components>
<component>
<role>org.apache.maven.plugin.MavenPluginCollector</role>
<implementation>org.apache.maven.plugin.MavenPluginCollector</implementation>
</component>
</components>
</plexus>

View File

@ -0,0 +1,33 @@
# 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.
# --------------------------------------------------------------------------
# \u00c5\u00eb\u00e5\u00e3\u00ea\u00f4\u00de\u00f2 \u00d3\u00f7\u00e5\u00e4\u00df\u00ef\u00f5
# --------------------------------------------------------------------------
failed.download.warning=\u00d0\u00f1\u00ef\u00f3\u00f9\u00f7\u00de! \u00c1\u00e4\u00fd\u00ed\u00e1\u00f4\u00f9\u00ed \u00e7 \u00ec\u00e5\u00f4\u00e1\u00f6\u00ef\u00f1\u00dc \u00f4\u00ef\u00f5 {0}!
remote.repository.disabled.warning=\u00c7 \u00f7\u00f1\u00de\u00f3\u00e7 \u00e1\u00f0\u00ef\u00ec\u00e1\u00ea\u00f1\u00f5\u00f3\u00ec\u00dd\u00ed\u00f9\u00ed \u00e1\u00f0\u00ef\u00e8\u00e7\u00ea\u00fe\u00ed \u00dd\u00f7\u00e5\u00e9 \u00e1\u00f0\u00e5\u00ed\u00e5\u00f1\u00e3\u00ef\u00f0\u00ef\u00e9\u00e7\u00e8\u00e5\u00df..
directory.nonexistant.warning=\u00cf \u00ea\u00e1\u00f4\u00dc\u00eb\u00ef\u00e3\u00ef\u00f2 {0} \u00e4\u00e5\u00ed \u00f5\u00f0\u00dc\u00f1\u00f7\u00e5\u00e9! \u00c4\u00ef\u00ea\u00e9\u00ec\u00dc\u00e6\u00f9 \u00e4\u00e7\u00ec\u00e9\u00ef\u00fd\u00f1\u00e3\u00e7\u00f3\u00e7...
not.directory.warning={0} \u00e4\u00e5\u00ed \u00e5\u00df\u00ed\u00e1\u00e9 \u00ea\u00e1\u00f4\u00dc\u00eb\u00ef\u00e3\u00ef\u00f2!
not.writable.warning=\u00c1\u00e4\u00fd\u00ed\u00e1\u00f4\u00f9\u00ed \u00e7 \u00e4\u00e9\u00e5\u00e3\u00e3\u00f1\u00e1\u00f6\u00de \u00f3\u00f4\u00ef {0}!
cannot.create.directory.warning=\u00c1\u00e4\u00fd\u00ed\u00e1\u00f4\u00f9\u00ed \u00e7 \u00e4\u00e7\u00ec\u00e9\u00ef\u00f5\u00f1\u00e3\u00e5\u00df\u00e1 \u00f4\u00ef\u00fd \u00ea\u00e1\u00f4\u00e1\u00eb\u00fc\u00e3\u00ef\u00f5 {0}!
maven.repo.local.unset.warning=maven.repo.local \u00e4\u00e5\u00ed \u00dd\u00f7\u00e5\u00e9 \u00ef\u00f1\u00e9\u00f3\u00f4\u00e5\u00df.
single.unsatisfied.dependency.error= \u00c7 \u00e4\u00e9\u00e1\u00e4\u00e9\u00ea\u00e1\u00f3\u00df\u00e1 \u00e4\u00e5\u00ed \u00ec\u00f0\u00ef\u00f1\u00e5\u00df \u00ed\u00e1 \u00f3\u00f5\u00ed\u00e5\u00f7\u00e9\u00f3\u00f4\u00e5\u00df! \u00cb\u00e5\u00df\u00f0\u00e5\u00e9 \u00e7 \u00e1\u00ea\u00fc\u00eb\u00ef\u00f5\u00e8\u00e7 \u00e5\u00ee\u00dc\u00f1\u00f4\u00e7\u00f3\u00e5\u00e9:
multiple.unsatisfied.dependency.error=\u00c7 \u00e4\u00e9\u00e1\u00e4\u00e9\u00ea\u00e1\u00f3\u00df\u00e1 \u00e4\u00e5\u00ed \u00ec\u00f0\u00ef\u00f1\u00e5\u00df \u00ed\u00e1 \u00f3\u00f5\u00ed\u00e5\u00f7\u00e9\u00f3\u00f4\u00e5\u00df! \u00cb\u00e5\u00df\u00f0\u00ef\u00f5\u00ed \u00e7 \u00e1\u00ea\u00fc\u00eb\u00ef\u00f5\u00e8\u00e5\u00f2 \u00e5\u00ee\u00e1\u00f1\u00f4\u00de\u00f3\u00e5\u00e9\u00f2:
offline.snapshot.warning=\u00c5\u00f1\u00e3\u00dc\u00e6\u00e5\u00f3\u00e1\u00e9 \u00e1\u00f0\u00ef\u00f3\u00f5\u00ed\u00e4\u00e5\u00e4\u00ef\u00ec\u00dd\u00ed\u00ef\u00f2! \u00c7 \u00e4\u00e9\u00e1\u00e4\u00e9\u00ea\u00e1\u00f3\u00df\u00e1 \u00e8\u00e1 \u00f3\u00f5\u00ed\u00e5\u00f7\u00df\u00f3\u00e5\u00e9 \u00e1\u00eb\u00eb\u00dc \u00e5\u00df\u00ed\u00e1\u00e9 \u00e4\u00f5\u00ed\u00e1\u00f4\u00fe\u00ed {0} \u00ed\u00e1 \u00ec\u00e7\u00ed \u00e5\u00df\u00ed\u00e1\u00e9 \u00e5\u00ed\u00e7\u00ec\u00e5\u00f1\u00f9\u00ec\u00dd\u00ed\u00ef!
download.message=\u00d0\u00f1\u00f9\u00f3\u00f0\u00e1\u00e8\u00fe \u00ed\u00e1 \u00ec\u00e5\u00f4\u00e1\u00f6\u00dd\u00f1\u00f9 {0}.
plugin.loading.error=\u00c1\u00e4\u00fd\u00ed\u00e1\u00f4\u00f9\u00ed \u00ed\u00e1 \u00f6\u00ef\u00f1\u00f4\u00f9\u00e8\u00e5\u00df \u00f4\u00ef plugin {0}!
empty.descriptor.error=\u00d4\u00ef \u00e1\u00f1\u00f7\u00e5\u00df\u00ef {0} \u00f0\u00ef\u00fd \u00ea\u00e1\u00e8\u00ef\u00f1\u00df\u00f3\u00e1\u00f4\u00e5 \u00dd\u00f7\u00e5\u00e9 \u00ec\u00dd\u00e3\u00e5\u00e8\u00ef\u00f2 \u00ec\u00e7\u00e4\u00dd\u00ed.

View File

@ -0,0 +1,34 @@
# 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 Verifier
# --------------------------------------------------------------------------
failed.download.warning=WARNING: Failed to download {0}.
remote.repository.disabled.warning=The use of the remote repository has been disabled.
directory.nonexistant.warning=Directory {0} does not exist. Attempting to create.
not.directory.warning={0} is not a directory.
not.writable.warning={0} is not writable.
cannot.create.directory.warning=Unable to create directory {0}
maven.repo.local.unset.warning=maven.repo.local is not set.
single.unsatisfied.dependency.error=The build cannot continue because of the following unsatisfied dependency:
multiple.unsatisfied.dependency.error=The build cannot continue because of the following unsatisfied dependencies:
offline.snapshot.warning=You are working offline so the build will continue, but {0} may be out of date!
download.message=Attempting to download {0}.
plugin.loading.error=The plugin {0} could not be loaded.
empty.descriptor.error=The file {0} you specified has zero length.
checksum.verification.error=The follow artifact is corrupt: {0}.

View File

@ -0,0 +1,33 @@
# 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.
# --------------------------------------------------------------------------
# Verificador de Proyecto
# --------------------------------------------------------------------------
failed.download.warning=\u00a1ATENCION!: \u00a1Imposible descargar {0}!
remote.repository.disabled.warning=El uso de repositorios remotos est\u00e1 desactivado..
directory.nonexistant.warning=\u00a1El directorio {0} no existe! Intentando crear...
not.directory.warning=\u00a1{0} no es un directorio!
not.writable.warning=\u00a1Imposible escribir en {0}!
cannot.create.directory.warning=\u00a1Imposible crear el directorio {0}!
maven.repo.local.unset.warning=\u00a1maven.repo.local no est\u00e1 definido!
single.unsatisfied.dependency.error=\u00a1El proceso no puede seguir! Falta la siguiente dependencia:
multiple.unsatisfied.dependency.error=\u00a1El proceso no puede seguir! Faltan las siguientes dependencias:
offline.snapshot.warning=\u00a1Est\u00e1s trabajando fuera de linea! \u00a1El proceso seguir\u00e1, pero es posible que {0} no est\u00e9 actualizado!
download.message=Intentando descargar {0}.
plugin.loading.error=\u00a1No se ha podido cargar el plugin {0}!
empty.descriptor.error=El fichero especificado, {0} , tiene longitud cero.

View File

@ -0,0 +1,33 @@
# 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 Verifier
# --------------------------------------------------------------------------
failed.download.warning=ATTENTION: Impossible de t\u00e9l\u00e9charger {0}.
remote.repository.disabled.warning=L'utilisation du d\u00e9p\u00f4t distant est d\u00e9sactiv\u00e9e.
directory.nonexistant.warning=Le r\u00e9pertoire {0} n'existe pas. Tentative de cr\u00e9ation.
not.directory.warning={0} n'est pas un r\u00e9pertoire.
not.writable.warning=Impossible d'\u00e9crire sur {0}.
cannot.create.directory.warning=Impossible de cr\u00e9er le r\u00e9pertoire {0}.
maven.repo.local.unset.warning=maven.repo.local n'est pas d\u00e9fini.
single.unsatisfied.dependency.error=Le processus ne peut continuer \u00e0 cause de la d\u00e9pendance manquante suivante:
multiple.unsatisfied.dependency.error=Le processus ne peut continuer \u00e0 cause des d\u00e9pendances manquantes suivantes:
offline.snapshot.warning=Vous travaillez hors-connexion, alors le processus va continuer, mais {0} peut ne pas \u00eatre \u00e0 jour!
download.message=Tentative de t\u00e9l\u00e9chargement de {0}.
plugin.loading.error=Impossible de charger le plugin {0}.
empty.descriptor.error=Le fichier {0} que vous avez sp\u00e9cifi\u00e9 est vide.

View File

@ -0,0 +1,33 @@
# 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 Verifier
# --------------------------------------------------------------------------
failed.download.warning=WAARSCHUWING: Kan {0} niet downloaden.
remote.repository.disabled.warning=Het gebruik van de remote repository is uitgezet.
directory.nonexistant.warning=Directory {0} bestaat niet. Probeer hem aan te maken.
not.directory.warning={0} is geen directory.
not.writable.warning={0} is niet schrijfbaar.
cannot.create.directory.warning=Kan {0} directory niet aanmaken
maven.repo.local.unset.warning=maven.repo.local is niet ingesteld.
single.unsatisfied.dependency.error=Het bouwen kan niet doorgaan, omdat de volgende afhankelijkheid niet achterhaald kan worden:
multiple.unsatisfied.dependency.error=Het bouwen kan niet doorgaan, omdat de volgende afhankelijkheden niet achterhaald kunnen worden:
offline.snapshot.warning=Je werkt offline, dus het bouwen gaat verder, maar {0} kan eventueel niet up-to-date zijn!
download.message=Probeer {0} te downloaden.
plugin.loading.error=De {0} plugin kan niet worden geladen.
empty.descriptor.error=The {0} file you specified has zero length.

View File

@ -0,0 +1,33 @@
# 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 Verifier
# --------------------------------------------------------------------------
failed.download.warning=ADVARSEL: Mislykket nedlasting av {0}.
remote.repository.disabled.warning=Bruk av fjernlager er deaktivert.
directory.nonexistant.warning=Mappen {0} finnes ikke. Fors\u00f8ker \u00e5 opprette.
not.directory.warning={0} er ikke en mappe.
not.writable.warning=Kan ikke skirve til {0}.
cannot.create.directory.warning=Kan ikke opprette mappen {0}.
maven.repo.local.unset.warning=maven.repo.local er ikke definert.
single.unsatisfied.dependency.error=Byggeprosessen kan ikke fortsette p\u00e5 grunn av f\u00f8lgende mislykkede avhengighet:
multiple.unsatisfied.dependency.error=The build cannot continue because of the following unsatisfied dependencies:
offline.snapshot.warning=Du arbeider frakoblet. Byggeprosessen vil fortsette, men {0} kan bli utdatert!
download.message=Fors\u00f8ker \u00e5 laste ned {0}.
plugin.loading.error=Plugin {0} kunne ikke lastes.
empty.descriptor.error=The {0} file you specified has zero length.

View File

@ -0,0 +1,33 @@
# 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 Verifier
# --------------------------------------------------------------------------
failed.download.warning=UWAGA: Nie uda\u0142o si\u0119 sci\u0105gn\u0105\u0107 {0}.
remote.repository.disabled.warning=Korzystanie ze zdalnego repozytorium jest wy\u0142\u0105czone.
directory.nonexistant.warning=Katalog {0} nie istnieje. Pr\u00f3buj\u0119 utworzy\u0107.
not.directory.warning={0} nie jest katalogiem.
not.writable.warning=Nie mo\u017cesz zapisa\u0107 {0}.
cannot.create.directory.warning=Nie mo\u017cesz utworzy\u0107 katalogu {0}.
maven.repo.local.unset.warning=maven.repo.local nie jest zdefiniowane.
single.unsatisfied.dependency.error=Budownaie przerwane z powodu nast\u0119puj\u0105cej niespe\u0142nionej zale\u017cno\u015bci:
multiple.unsatisfied.dependency.error=Budownaie przerwane z powodu nast\u0119puj\u0105cych niespe\u0142nionych zale\u017cno\u015bci:
offline.snapshot.warning=Pracujesz w trybie offline, wi\u0119c budowanie b\u0119dzie kontunuowane, cho\u0107 {0} mo\u017ce by\u0107 nieaktualny!
download.message=Pr\u00f3buj\u0119 \u015bci\u0105gn\u0105\u0107 {0}.
plugin.loading.error=Nie uda\u0142o si\u0119 za\u0142adowa\u0107 pluginu {0}.
empty.descriptor.error=The {0} file you specified has zero length.

View File

@ -0,0 +1,34 @@
# 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.
# --------------------------------------------------------------------------
# 项目验证
# --------------------------------------------------------------------------
failed.download.warning=警告: {0} 下载失败。
remote.repository.disabled.warning=禁止使用远程资源仓库。
directory.nonexistant.warning=目录 {0} 不存在。 尝试新建中……
not.directory.warning={0} 不是目录。
not.writable.warning={0} 只读。
cannot.create.directory.warning=创建目录 {0} 失败。
maven.repo.local.unset.warning=没有设置 maven.repo.local 属性。
single.unsatisfied.dependency.error=由于以下的依赖缺少,创建不能进行:
multiple.unsatisfied.dependency.error=由于以下的依赖缺少,创建不能进行:
offline.snapshot.warning=离线时创建,可能 {0} 过期!
download.message=尝试下载 {0}……
plugin.loading.error=装入 plugin {0} 失败。
empty.descriptor.error=文件 {0} 的长度为0。
checksum.verification.error=以下资源已被破坏:{0}。

View File

@ -0,0 +1,122 @@
-----
Maven configuration management
-----
The Maven Team
-----
Configuration levels in maven
In maven configuration control happens on four differ levels: the site level, the group level,
the project level, and the user level. On the site level you can configure maven for all users
utilizing the local installation, the group level allows configuration management for all the projects
that belong to the same group, the project level allows configuration management at
the project level, and the user level allows users to override settings on
the site level, group level and project level.
* Site configuration
At the site level all configuration is achieved by tweaking the the various files that
are available in the ${maven.home}/site-configuration directory
+-----+
${maven.home}
|
+--- maven.properties
+-----+
* Group configuration
As far as properties go for an entire build the maven.properties could be placed at
the top of the group but I'm not really sure how this might work. There could probably
also be a directory for plugins.xml and maven.properties.
* Project configuration
At the project level all configuration is achieved by tweaking the POM. One of the differences between
maven 1.x and 2.x is that all project parameterization occurs in the POM and not from properties
files.
For many of the more advanced features in Maven2 it is critical that POMs be available in the local repository.
Features like transitive dependencies and the new parent specification mechanism. The problem we run into is
that currently we have information about a project scattered across the project.xml and the
various properties files. What needs to be done is to encapsulate all of this in the POM.
Typically users parameterize the use of plugins, or have custom values like ${user.name}
for use in elements like the <developerConnection/>. It would be idea if we
could encapsulate everything we need about the project in the POM including
plugin parameters and anything else.
We once had a document that Vincent and I agreed upon and I was about to
implement it and then I disappeared for 8 months so it never came to pass.
So I guess it's important to figure out what people are using propeties
files for and see if we can't incorporate it all into the POM. Or if we do
have properties file (something I would like to avoid) say they don't
contribute in any meaningful way to information in the POM. For example a
properties file could be used the specify $ so it can be interpolated in
<developerConnection/> but you couldn't use a properties file to specify the
version of your project say. Anyway, food for thought to begin with.
- elements that are critical for pom dissemination
- those that are used locally by the user like <developerConnection/>
* User configuration
User configuration which is utilized site wide are controlled with the ${user.home}/.m2/maven.properties.
User configuration which is utilized at the project level are controlled with the
${project.home}/maven.properties file.
Plugin configuration
The configuration of plugins is of the same form as the maven {{{plugin-descriptors}plugin descriptors}}
themselves:
+-----+
<plugins>
<plugin>
<id>xdoc</id>
<version>1.0</version>
<parameters>
<parameter>
<name>theme</name>
<value>classic</value>
</parameter>
</parameters>
</plugin>
</plugins>
+-----+
Unified source directory
Unified source directory structure that is analagous to the repository
itself. This way locations of intermediary artifacts of a build would be
in a known location. This would also help with developer setup i.e. getting
new developers up and running. They could run a maven command and have all
their source trees set up in the same way as their collegues.
here's what I do currently in the netbeans part of the mevenide project to
find the relevant subprojects/sibling projects. I check if the user has
defined the maven.multiproject.includes property in any of his properties
files for the current project. if yes. then I'm able to find projects that
can be offered to be opened together with the current project.
problems with the current solution are:
1. information is duplicate. once in POM's dependencies and once in the
maven.multiproject.includes property.
2. it works without problems only for projects with relative paths, eg. from
one CVS repository.. for projects from multiple SCM repositories it's harder
to maintain the same relative links on all developer computers.
not sure the unified source directory structure addresses this issue.
Properties
maven.user.config.dir (system,default=${user.home}/.m2)
maven.home (system,user,default=${user.home}/m2)
maven.repo.local (system,user,default=${maven.user.config.dir}/repository)
We need to define what happens in the when things are not setup correctly
o ~/.m2 directory does not exist
o ~/.m2/maven.properties does not exist
o if they once existed but now to do not exist
o what the installer will take care of of what we can recover from

View File

@ -0,0 +1,85 @@
---
Getting to Plexus-configured Mojos
---
John Casey
---
29-April-2005
Abstract
We're moving toward integrating mojos as first-class plexus components, while
at the same time avoiding introducing required plexus dependencies into the
mojo development model.
In order to really achieve this, we need mojo configurations (which are
provided both in terms of static expressions that are just looked up, and
in terms of user-provided configuration from system properties or the POM).
If these mojos are to be first-class components, the configuration from these
various sources must be consolidated and injected using the container.
Currently, mojo configuration is done externally to the container, in the
DefaultPluginManager in the maven-core API. In order to get from here to
there, we need to do several things to add capability to the default
configuration of plexus. This document will detail those changes.
Container Enhancements
* ExpressionEvaluator
Currently, the expression evaluator used to resolve configuration values
is the DefaultExpressionEvaluator, which is a local variable within the
implementation of the BasicComponentConfigurator. This ExpressionEvaluator
simply returns the expression itself as the resolved value, which adds
very little value to the container. Things like ${project.build.resources}
are not resolved, and result in a type mismatch for the member injection.
We need a replacement for DefaultExpressionEvaluator that is capable of
traversing an object graph and extracting Object values, not just Strings.
* ComponentConfigurator
Currently, the container uses BasicComponentConfigurator, to configure
components. This wouldn't be a problem, except for the local instance of
DefaultExpressionEvaluator used within. See the above discussion for more
on why this evaluator is bad. We need to provide either an alternative
implementation under a different roleHint, or else replace the
BasicComponentConfigurator.
* Other
We may need to define a new lifecycle/phase to contextualize a mojo right
before it's used, and reset it's state afterward. Up to now, the approach
of most plexus components has been to avoid instance state like the plague.
With the current parameter passing model of mojos, this will not be possible,
particularly when we move mojos to a singleton instantiation model, and then
run a reactorized project...the successive calls may leave behind configuration
artifacts from invocation to invocation.
Maven Modifications
* DefaultPluginManager
s/getMojoConfiguration()/getConfiguration()/g
That should re-enable usage of mojo configuration. Ideally, we won't need any
of the code that references this method, since the container should provide
some way of recontextualizing the mojo, and all we would need to do is inject
POM configuration via the lookup method or something.
* PluginDescriptorBuilder
s/getMojoConfiguration()/getConfiguration()/g
That should be all there is to it.
* MojoDescriptor
Remove set/getMojoConfiguration(..), as it will become obsolete.
* MavenSession
We may need to enable the context injection here, since this will be
instantiated per-project. If we always inject the same context parameters,
and are careful to inject nulls where things are missing, we should be
able to minimize reconfiguration artifacts injected from basic parameters.

View File

@ -0,0 +1,83 @@
-----
Inheritance in Maven
-----
The Maven Team
-----
Inheritance in Maven
In order the understand how inheritance works in Maven there are a few notions that you must be familiar with:
* The maven super model
* how parent poms are processed
* the order in which elements in the POM are overridden
* minimum element-set for a valid project pom
Maven super model
Inheritance is recursive in Maven but there is a special model which is the implicit super parent in the lineage
of models you may specify:
all of the models that you specify are collected to produce a lineage and then the super model is place at
the top of that lineage to provide default values.
The super model is where we place all the values which we believe to be standard, values that can be shared and
utilized across all your maven projects.
+-----+
m0 <- m1 <- m2
+-----+
which is transformed into
+-----+
super model <- m0 <- m1 <- m2
+-----+
+-----+
<project>
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId></groupId>
<artifactId></artifactId>
<version></version>
</parent>
</project>
+-----+
Extending the POM in the future
In order to anticipate changes in the structure of the POM as new releases of
maven occur, the maven inheritance model must be pinned against a particular
modelVersion. This is required so that a change from modelVersion 4.0.0 to
4.1.0 doesn't cause compatibility problems with users who have not upgraded
their projects. It also allows for a certain amount of legacy support into the
future. Therefore, we should rename this file from pom.xml in the maven-core
jarfile to pom-4.0.0.xml (and successive revisions to the base pom made to
accommodate changes in the model will be named accordingly - 4.0.1, 4.0.2, ...).
Minimum Element-Set for a Project POM
In order to furnish a basic set of information which we need to distinguish one
project from another, maven requires a minimum set of elements to be specified
in each project's pom.xml.
- [modelVersion] tells maven which version of the object model this project
is compliant with (to support future legacy concerns)
- [artifactId] tells maven what the artifact name is for this particular
project. Each project should have a distinct artifactId.
- [version] tells maven what release of this artifact we're trying to produce.
The fact that a project has a distinct pom.xml should indicate a separate
release cycle that is also distinct to that project, so a concrete version
declaration is required.
- [name] tells maven what the user-friendly name of this project is. The name
element is similar to artifactId in that it is a unique descriptor for
this and only this project, and therefore should be concretely defined.

View File

@ -0,0 +1,252 @@
---
Offline Mode Design
---
John Casey
---
08-April-2005
---
Offline Mode Design
* UPDATE: 18-April-2005
We cannot take the approach outlined below of detecting which remote
repositories are "really" offline, since offline mode is more of a behavior,
and this will lead to counter-intuitive results. A different feature may exist
unimplemented, which is to detect when the network is down and provide better
feedback for that case. However, when offline mode is declared, nothing
earmarked as remote should be accessed, regardless of whether it is actually
a physically local resource.
NOTE: One side-effect of this design change is that all offline-mode code can
be isolated to maven-core, maven-plugin-descriptor, and [possibly]
maven-artifact. Usage of maven-wagon will be determined by an offline-aware
manager.
* Assumptions: What is Offline?
For the purposes of determining the areas sensitive to offline status,
it is definitely useful to define what the offline state really means.
[[1]] This is obvious, but the network/internet is unavailable.
[[2]] Localhost (127.0.0.1) may also be unavailable if the whole
network stack is offline.
[[3]] "Remote" repositories referenced using the file:// protocol may
be available. However, if that file:// url references a
file-share, as in the case of an NFS or SMB mount, that will
be unavailable.
So, offline mode has several implications, some of which may not be
altogether obvious:
* Localhost may be unavailable. Therefore, even locally installed
server processes which work by conversing over a port may fail.
* Not all "remote" repositories will fail. Specifically, if the remote
repo uses the file:// protocol, and it doesn't refer to a shared
filesystem, it will continue to be available.
The question remaining is: Which level of offline mode will we support? It
seems reasonable to assume that users will be able to tell when localhost is
not active (in most cases, localhost should be available, even if the rest of
the network is not). Therefore, let's concentrate on the state where no
network <beyond localhost> exists, and leave the more extreme state to users
to diagnose and correct as necessary.
* Why is Offline Mode Important?
Offline mode is essential for breaking the requirement that m2 operate in a
network-connected environment. It means legitimizing a development environment
in which there is no network connection, and providing a robust m2 service
offering in such circumstances. Introduction of offline mode allows m2 to
anticipate the inevitable network failures that accompany being physically
disconnected from the network, and adjust it's behavior accordingly.
It is more than simply understanding that m2 cannot go and check for the
latest version of some snapshot artifact. If m2 is offline, SCM operations
cannot succeed; no artifact downloads can take place, regardless of whether
they are snapshot versions; artifact deployment cannot take place; certain
types of tests cannot be setup, since the container used to run them cannot be
reached or started.
All of these operations will produce their own unique errors in the absence of
a coordinated offline strategy. In addition, efforts to unite these failing
behaviors behind a consistent user interface is much, much more difficult if
the system can't tell whether it has access to the network required by these
operations.
Offline mode really means anticipating a lack of network connectivity, and as
a result turning off certain services provided by m2 and providing a coherent
way of predicting and reporting when network-related failures will take place.
It means warning users that since the network is missing, certain features and
operations will be unavailable, rather than simply waiting for those
operations to fail, then trying to help users decipher the error messages they
get as a result.
* Implications for Resolution
** Dependency Resolution
This one is obvious...we only have access to the repositories using
the file:// protocol and living on a truly local filesystem when
offline.
** Plugin Resolution
This is similar to dependency resolution. Plugin repositories not
using file:// or not residing on a local (not shared) filesystem will
be unavailable.
* Implications for Mojo Execution
** Deployment mojos
The concept of deployment is dependent on the availability of a some
remote repository. Just as above, if that repository is not using
file:// (which is highly likely to be the case), or the repository is
not on a local filesystem, deployment will fail when offline.
** Testing mojos
This can be a problem if the tests are more than simple unit tests;
that is, if they require configuration of a server process, and
subsequent testing in-container.
Since we're only going to concern ourselves with states where localhost is
still active, we only need to worry about this case when the server container
is <<not>> installed on localhost. This allows the popular pattern of starting
a server container in-JVM, running tests against it, and shutting it down.
** SCM mojos
See below for discussion on SCM-related operations. Any mojo which
carries out some analysis or other interaction with a SCM system
will likely be unavailable when in offline mode.
* Implications for Subsystems
** Maven-Wagon
Parts of Wagon will continue to function normally. These include:
* The file wagon, provided the referenced location is on a local
filesystem.
It is not possible to determine whether a file-based location will
be available except on a case-by-case basis (or a root-url by
root-url basis). We may want to move the offline sensitivity entirely to
Maven-Artifact, below, so we can be smarter about testing filesystem-based
repositories, etc.
* If not otherwise specified, all other wagons are assumed to be
remote-only, and are therefore sensitive to offline mode.
** Maven-Artifact
This is wholly dependent on Maven-Wagon, above.
We could possibly use a flag on a particular Wagon to see whether it supports
offline mode, and then test to see if the file-based basedir for an aritfact
repository works...if it doesn't work, we can mark that repository offline...
OTOH, all offline-mode checks can probably be run from Wagon-based APIs.
** Maven-SCM
In all but trivial examples, SCM operations cannot complete without
having access to the versioning server. Therefore, it is assumed that
any SCM-related activity will be unavailable when m2 is in offline
mode.
** Maven-Core
We'll examine the different parts of maven-core on a case-by-case
basis, below:
*** DefaultLifecycleExecutor
When binding goals to the project's configured lifecycle, each mojo
descriptor should declare whether it requires online/offline status.
This value should be a java.lang.Boolean, so it can implement 3VL
(three value logic: yes, no, don't-care). The requiresOnline
field in the mojo descriptor has the following semantics:
[true] Online status is required for this mojo to function
correctly.
[false] <<(Default)>> Either status is acceptable for the mojo to
execute. It doesn't care.
The majority of mojos will leave the requiresOnline == false,
since online/offline status will be irrelevant, provided they have
access to their required artifacts and other classpath elements. In the case
of required artifacts and other classpath elemtents, this is assumed by the
mojo API to be in a correct state, and will be handled by the Wagon
modifications.
* Implementation Notes
** Accessibility of offline status
Offline status should be indicated in the MavenSettings instance, since it
can conceivably be set from either the settings.xml or the command-line.
In the event the '-o' switch is the impetus for setting offline mode, this
should result in modification of the active profile in the MavenSettings
instance, just as definition of the active profile from the command-line
should result in similar modification. This object is not meant to be
static within the build process, but rather to be setup as an aggregation of
all settings-related information passed into the system.
** Control over downloads
Find the control point for m2 using maven-wagon. At this point, inject
a offline status parameter which is used when retrieving the specific Wagon.
If <<<offline == true>>>:
* If the wagon is not bound to "file://", then ignore the request and print
a debug message.
* If the wagon is bound to "file://" then:
Retrieve the file or base-url file to be "downloaded".
* If the file (or more usefully, the base-url file) exists, proceed.
* If the file (or base-url file) doesn't exist, assume that this location
is part of a file-share. Ignore the request and print a debug message
as above.
** Control over mojos in the lifecycle
When binding a mojo to the project's lifecycle instance, check the mojo
descriptor's requiredConnectivity field.
* If <<<(offline == true) && (requiresOnline != true)>>>, bind
the mojo to the lifecycle.
In this case, the client is <<offline>>, and the mojo does not require
online status.
* If <<<(offline == false) && (requiresOnline == true)>>>, bind
the mojo to the lifecycle.
In this case, the client is <<online>>, and the mojo either requires
<<online>> status, or else doesn't care.
* Otherwise, don't bind the mojo. Log a debug message to indicate that it is
sensitive the the online state of the application, and that this state is
currently wrong for execution.
<<NOTE:>> Do we want to fail when we cannot bind a mojo to the lifecycle
because of offline/online status? That would probably indicate that the user
was trying to do something they cannot succeed at for now...so we probably
should throw an exception in this case.

View File

@ -0,0 +1,40 @@
-----
Maven plugins
-----
The Maven Team
-----
Maven plugin execution isolation
Maven2 takes advantage of Plexus' ability to execute a component using a
ClassWorlds ClassRealm that is populated with the JAR containing the
component in question and all of its dependencies. Using ClassWorlds
notation for realms we have the following:
+-----+
[plexus.core]
^
|
[plexus.core.maven]
^ ^
| |
[plugin0] [plugin1]
+-----+
The <<<plexus.core>>> realm contains the resources required to run any
plexus application; The <<<plexus.core.maven>>> realm contains all of the
resources required to run Maven. Each subseqent plugin realm contains the
JAR plugin as well as its dependencies. The realms noted above are setup
in a hierachical structure where the resources in the parent realms are
available but the <<realm is searched first before a search is made in
the parent realm>>.
Plugins are guaranteed to be provided the resources found in
<<<plexus.core>>> and <<<plexus.core.maven>>> realms at run-time if required.
Plugins can state compile-time dependencies on any of the resources found in
the core realms listed above and these dependencies will be included in the
plugin descriptor that is generated but when running within Maven these
resources will be filtered out. In other words these resources will not
be added the realm created for the plugins execution as they are provided
in the parent realms.

View File

@ -0,0 +1,179 @@
---
Marmalade Mojo Support - Notes
---
John Casey
---
07-Feb-2005
---
Marmalade Support
*Abstract
This document will track the design and implementation issues involved in
adding support to m2 for marmalade-based mojos.
*Design Notes
[[1]] <<Marmalade mojo descriptor specification.>>
As in all mojo specifications, it is ideal that the descriptor for
a marmalade-based mojo be inline with the source code. This centralizes
all maintenance related to a single mojo to a single point of maintenance.
The following is what I'm thinking as of now:
- a marmalade-based mojo should look something like:
+---+
<mojo xmlns="m2:mojo" xmlns:marmalade-control="marmalade:marmalade-control" marmalade-control:el="none">
<metadata>
<id>mmld</id>
<name>mmldCompile</name>
<lifecyclePhase>compile</lifecyclePhase>
<description>Used to compile marmalade scripts into java beans.</description>
<requiresDependencyResolution/>
<instantiationStrategy/>
<executionStrategy/>
<parameters>
<parameter>
<name>classpath</name>
<description>The compilation classpath</description>
<type>java.util.List</type>
<expression>#pom.artifacts</expression>
<required/>
<validator/>
<default/>
</parameter>
</parameters>
</metadata>
<execute>
<!-- Do some stuff. -->
</execute>
</mojo>
+---+
[NOTE] All empty elements above signify optional elements, usage specification.
[[2]] <<Marmalade mojo packager.>>
The marmalade mojo packager will:
[[a]] Locate all *.mmld files within the scripts directory of the project.
The scripts directory should be tied to the script language within
the POM. Until we have multiple language support in the POM, we'll
use something like: <<<xpath(build/marmaladeSourceDirectory)>>>.
[[b]] For each script found:
[[i]] Execute the script with "gatherMetadata=true" in the context.
[[ii]] Retrieve the mojo descriptor from the resulting "metadata"
variable in the context.
[[iii]] Cache the mojo descriptor in aggregator for subsequent
output to plugin descriptor file.
[[c]] Copy all scripts to the target directory. Preserve relative paths.
[[d]] <<Process Disjoint:>> <Allow other mojo-descriptor collectors to
run, aggregating their descriptors in similar fashion to [b.iii]
above.>
[[e]] Use the project's dependencies and other info to form the plugin
descriptor's header (non-mojo-specific info).
[[f]] Use the PluginGenerator from maven-plugin-tools to generate a
META-INF/plexus/plugin.xml to the target directory.
[[g]] Continue with lifecycle.
This may include compilation of java helper classes, etc. and
plugin-artifact packaging, presumably via 'jar:jar' or similar.
[[3]] <<Marmalade mojo loader.>>
The marmalade mojo loader will:
[[a]] Retrieve the implementation spec (this is the path of the script,
relative to the root of the plugin filesystem...jar, etc.) to
$path.
[[b]] Use the context classloader to retrieve a reader to $path.
[[c]] Build the ScriptBuilder corresponding to the script.
[[d]] Create a new MarmaladeMojo instance which adapts the mojo calling
semantics to the creation/execution of a marmalade script.
Execution involves:
[[i]] Creating a new MarmaladeScript instance.
[[ii]] Creating an execution context which references all I/O
from the main Maven execution thread, and embeds:
- #request == MavenExecutionRequest
- #response == MavenExecutionResponse
- Any globally configured environmental constraints, such
as a global preserve-whitespace setting
[[iii]] Execution of the script using the execution context.
[[iv]] Export of the resulting context, minus any surviving input
variables, to the MavenExecutionResponse's out-params.
*Implementation Issues
[[1]] How do we make Maven smart enough to switch loader implementations based
on some sub-type of maven-plugin?
This is important, since the default mojo loader will not be smart
enough to do the job, and embedding this behavior in that loader is not
scalable or extensible enough to accommodate future expansion into the
realms of jython, groovy, etc...
<<UPDATE:07-FEB-2005>>
We'll plan on using some sort of language specification in the mojo
descriptor to determine which mojo loader to use, then we'll populate
the PluginLoader/PluginManager with a map of known languages->loaders.
[[2]] How do we make the plugin:install process smart enough to switch
generator implementations based on some sub-type of maven-plugin?
This is closely related to [1] above.
<<UPDATE:07-FEB-2005>>
See update in [3].
[[3]] Do we want to allow mixed-bag plugin implementations?
These might include a mix of standard-java and marmalade mojos. It
strikes me that many marmalade-based mojos may use beans/tags that are
actually adapter classes for other third-party APIs (why they wouldn't
implement everything as java mojos in this cases is beyond me). If they
have java source inside the plugin source directory, we should probably
compile it and bundle it with the plugin scripts; but what if this source
also has mojo annotations? This will have implications for [1] and [2]
above.
<<UPDATE:07-FEB-2005>>
We will plan on allowing this sort of implementation, and simply start
by applying all known generators which have a source directory set in
the POM (or later, have a <language/> section, maybe). At any rate,
helper classes will be allowed for script-based mojos.

View File

@ -0,0 +1,112 @@
<component-set>
<components>
<component>
<role>org.apache.maven.lifecycle.binding.LegacyLifecycleParsingTestComponent</role>
<role-hint>default</role-hint>
<implementation>org.apache.maven.lifecycle.binding.LegacyLifecycleParsingTestComponent</implementation>
<configuration>
<legacyLifecycles>
<legacyLifecycle>
<id>default</id>
<phases>
<phase>validate</phase>
<phase>initialize</phase>
<phase>generate-sources</phase>
<phase>process-sources</phase>
<phase>generate-resources</phase>
<phase>process-resources</phase>
<phase>compile</phase>
<phase>process-classes</phase>
<phase>generate-test-sources</phase>
<phase>process-test-sources</phase>
<phase>generate-test-resources</phase>
<phase>process-test-resources</phase>
<phase>test-compile</phase>
<phase>process-test-classes</phase>
<phase>test</phase>
<phase>prepare-package</phase>
<phase>package</phase>
<phase>pre-integration-test</phase>
<phase>integration-test</phase>
<phase>post-integration-test</phase>
<phase>verify</phase>
<phase>install</phase>
<phase>deploy</phase>
</phases>
</legacyLifecycle>
<legacyLifecycle>
<id>clean</id>
<phases>
<phase>pre-clean</phase>
<phase>clean</phase>
<phase>post-clean</phase>
</phases>
<default-phases>
<clean>org.apache.maven.plugins:maven-clean-plugin:clean</clean>
</default-phases>
</legacyLifecycle>
<legacyLifecycle>
<id>site</id>
<phases>
<phase>pre-site</phase>
<phase>site</phase>
<phase>post-site</phase>
<phase>site-deploy</phase>
</phases>
<default-phases>
<site>org.apache.maven.plugins:maven-site-plugin:site</site>
<site-deploy>org.apache.maven.plugins:maven-site-plugin:deploy</site-deploy>
</default-phases>
</legacyLifecycle>
</legacyLifecycles>
</configuration>
</component>
<component>
<role>org.apache.maven.lifecycle.mapping.LifecycleMapping</role>
<role-hint>test-mapping</role-hint>
<implementation>org.apache.maven.lifecycle.mapping.DefaultLifecycleMapping</implementation>
<configuration>
<lifecycles>
<lifecycle>
<id>default</id>
<!-- START SNIPPET: pom-lifecycle -->
<phases>
<package>org.apache.maven.plugins:maven-site-plugin:attach-descriptor</package>
<install>org.apache.maven.plugins:maven-install-plugin:install</install>
<deploy>org.apache.maven.plugins:maven-deploy-plugin:deploy</deploy>
</phases>
<optional-mojos>
<optional-mojo>org.apache.maven.plugins:maven-site-plugin:attach-descriptor</optional-mojo>
</optional-mojos>
<!-- END SNIPPET: pom-lifecycle -->
</lifecycle>
</lifecycles>
</configuration>
</component>
<component>
<role>org.apache.maven.lifecycle.mapping.LifecycleMapping</role>
<role-hint>test-mapping2</role-hint>
<implementation>org.apache.maven.lifecycle.mapping.DefaultLifecycleMapping</implementation>
<configuration>
<lifecycles>
<lifecycle>
<id>default</id>
<!-- START SNIPPET: pom-lifecycle -->
<phases>
<package>
org.apache.maven.plugins:maven-site-plugin:attach-descriptor,
org.apache.maven.plugins:maven-clean-plugin:clean
</package>
<install>org.apache.maven.plugins:maven-install-plugin:install</install>
<deploy>org.apache.maven.plugins:maven-deploy-plugin:deploy</deploy>
</phases>
<optional-mojos>
<optional-mojo>org.apache.maven.plugins:maven-site-plugin:attach-descriptor</optional-mojo>
</optional-mojos>
<!-- END SNIPPET: pom-lifecycle -->
</lifecycle>
</lifecycles>
</configuration>
</component>
</components>
</component-set>

View File

@ -0,0 +1,28 @@
<!--
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.
-->
<component-set>
<components>
<component>
<role>org.apache.maven.plugin.loader.PluginLoader</role>
<role-hint>default</role-hint>
<implementation>org.apache.maven.lifecycle.plan.testutils.TestPluginLoader</implementation>
</component>
</components>
</component-set>

View File

@ -0,0 +1,53 @@
<!--
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.
-->
<component-set>
<components>
<component>
<role>org.apache.maven.project.MavenProjectBuilder</role>
<implementation>org.apache.maven.project.DefaultMavenProjectBuilder</implementation>
<requirements>
<requirement>
<role>org.apache.maven.project.injection.ModelDefaultsInjector</role>
</requirement>
<requirement>
<role>org.apache.maven.project.interpolation.ModelInterpolator</role>
</requirement>
<requirement>
<role>org.apache.maven.project.inheritance.ModelInheritanceAssembler</role>
</requirement>
<requirement>
<role>org.apache.maven.project.validation.ModelValidator</role>
</requirement>
<requirement>
<role>org.apache.maven.project.path.PathTranslator</role>
</requirement>
<requirement>
<role>org.apache.maven.artifact.factory.ArtifactFactory</role>
</requirement>
<requirement>
<role>org.apache.maven.artifact.resolver.ArtifactResolver</role>
</requirement>
<requirement>
<role>org.apache.maven.artifact.repository.ArtifactRepositoryFactory</role>
</requirement>
</requirements>
</component>
</components>
</component-set>

View File

@ -0,0 +1,48 @@
<!--
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.
-->
<model 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/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.apache.maven</groupId>
<artifactId>maven-core</artifactId>
<packaging>jar</packaging>
<name>Maven</name>
<version>2.0-SNAPSHOT</version>
<inceptionYear>2001</inceptionYear>
<dependencies>
<dependency>
<groupId>org.apache.maven</groupId>
<artifactId>maven-model</artifactId>
<version>2.0-SNAPSHOT</version>
<type>jar</type>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.apache.maven</groupId>
<artifactId>maven-plugin</artifactId>
<version>2.0-SNAPSHOT</version>
<type>jar</type>
<scope>compile</scope>
</dependency>
</dependencies>
<scm>
<connection>scm-connection</connection>
</scm>
</model>

View File

@ -0,0 +1,20 @@
i want to be a <!--
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.
-->
POM!

View File

@ -0,0 +1,18 @@
# 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.
name = sarel

View File

@ -0,0 +1,28 @@
<!--
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.
-->
<model>
<groupId>foo</groupId>
<artifactId>bar</artifactId>
<name>Babar</name>
<version>4.5</version>
<!-- Build element should be inherited from the super model -->
</model>

View File

@ -0,0 +1,29 @@
<!--
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.
-->
<model>
<extend>${basedir}/bogus.xml</extend>
<parent>
<groupId>maven</groupId>
<artifactId>bogus</artifactId>
<version>1.0-beta-9</version>
</parent>
</model>

View File

@ -0,0 +1,33 @@
<!--
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.
-->
<model>
<extend>project.xml</extend>
<parent>
<groupId>maven</groupId>
<artifactId>maven-project-test</artifactId>
<version>1.0-beta-9</version>
</parent>
<artifactId>child-artifact</artifactId>
<groupId>maven</groupId>
<version>1.0-beta-9</version>
</model>

View File

@ -0,0 +1,168 @@
<?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.
-->
<model>
<extend>project.xml</extend>
<parent>
<groupId>maven</groupId>
<artifactId>maven-project-test</artifactId>
<version>1.0-beta-9</version>
</parent>
<modelVersion>3</modelVersion>
<groupId>maven</groupId>
<artifactId>maven</artifactId>
<name>Maven</name>
<version>1.0-beta-9</version>
<inceptionYear>2001</inceptionYear>
<package>org.apache.maven</package>
<description>Description</description>
<shortDescription>shortDescription</shortDescription>
<url>http://maven.apache.org/</url>
<issueTrackingUrl>issueTrackingUrl</issueTrackingUrl>
<distributionManagement>
<repository>
<id>childDistributionRepositoryId</id>
<name>childDistributionRepositoryName</name>
<url>childDistributionRepository</url>
</repository>
<site>
<id>childSiteDistributionId</id>
<name>childSiteDistributionName</name>
<url>childSiteDistributionUrl</url>
</site>
</distributionManagement>
<organization>
<name>Apache Software Foundation</name>
<url>http://apache.org/</url>
<logo>/images/jakarta-logo-blue.gif</logo>
</organization>
<scm>
<connection>anon-connection</connection>
<developerConnection>developer-connection</developerConnection>
<url>repository-url</url>
</scm>
<mailingLists>
<mailingList>
<name>Maven User List</name>
<subscribe>subscribe</subscribe>
<unsubscribe>unsubscribe</unsubscribe>
<archive>archive</archive>
</mailingList>
</mailingLists>
<developers>
<developer>
<name>Jason van Zyl</name>
<id>jvanzyl</id>
<email>jason@maven.org</email>
<organization>Zenplex</organization>
<roles>
<role>Founder</role>
<role>Release Manager</role>
</roles>
</developer>
</developers>
<contributors>
<contributor>
<name>Martin van dem Bemt</name>
<email>mvdb@mvdb.com</email>
</contributor>
</contributors>
<dependencies>
<dependency>
<groupId>g1</groupId>
<artifactId>d1</artifactId>
<version>1.0</version>
<url>d1-url</url>
</dependency>
<dependency>
<groupId>g2</groupId>
<artifactId>d2</artifactId>
<version>2.0</version>
<url>d2-url</url>
</dependency>
</dependencies>
<build>
<nagEmailAddress>jason@maven.org</nagEmailAddress>
<sourceDirectory>/sourceDirectory</sourceDirectory>
<unitTestSourceDirectory>/unitTestSourceDirectory</unitTestSourceDirectory>
<unitTest>
<includes>
<include>**/*Test.java</include>
</includes>
<excludes>
<exclude>**/RepositoryTest.java</exclude>
<exclude>**/JAXPTest.java</exclude>
</excludes>
<resources>
<resource>
<directory>${basedir}/src/test</directory>
<includes>
<include>**/*.xml</include>
</includes>
</resource>
</resources>
</unitTest>
<resources>
<resource>
<directory>/src/conf</directory>
<includes>
<include>*.xsd</include>
<include>*.dtd</include>
<include>*.mod</include>
<include>log4j.properties</include>
<include>driver.jelly</include>
<include>driver.properties</include>
</includes>
</resource>
<resource>
<directory>/src/messages</directory>
<targetPath>org/apache/maven/messages</targetPath>
<includes>
<include>messages*.properties</include>
</includes>
</resource>
</resources>
</build>
<reports>
<report>maven-jdepend-plugin</report>
<report>maven-checkstyle-plugin</report>
<report>maven-changelog-plugin</report>
<report>maven-file-activity-plugin</report>
<report>maven-developer-activity-plugin</report>
<report>maven-javadoc-plugin</report>
<report>maven-jxr-plugin</report>
<report>maven-junit-report-plugin</report>
<report>maven-tasklist-plugin</report>
<report>maven-jellydoc-plugin</report>
</reports>
</model>

View File

@ -0,0 +1,162 @@
<?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.
-->
<model>
<modelVersion>3</modelVersion>
<groupId>maven</groupId>
<artifactId>maven-project-test</artifactId>
<name>Maven</name>
<version>1.0-beta-9</version>
<inceptionYear>2001</inceptionYear>
<package>org.apache.maven</package>
<description>Description</description>
<shortDescription>shortDescription</shortDescription>
<url>http://maven.apache.org/</url>
<issueTrackingUrl>issueTrackingUrl</issueTrackingUrl>
<distributionManagement>
<repository>
<id>distributionRepositoryId</id>
<name>distributionRepositoryName</name>
<url>distributionRepository</url>
</repository>
<site>
<id>siteDistributionId</id>
<name>siteDistributionName</name>
<url>siteDistributionUrl</url>
</site>
</distributionManagement>
<organization>
<name>Apache Software Foundation</name>
<url>http://apache.org/</url>
<logo>/images/jakarta-logo-blue.gif</logo>
</organization>
<scm>
<connection>anon-connection</connection>
<developerConnection>developer-connection</developerConnection>
<url>repository-url</url>
</scm>
<mailingLists>
<mailingList>
<name>Maven User List</name>
<subscribe>subscribe</subscribe>
<unsubscribe>unsubscribe</unsubscribe>
<archive>archive</archive>
</mailingList>
</mailingLists>
<developers>
<developer>
<name>Jason van Zyl</name>
<id>jvanzyl</id>
<email>jason@maven.org</email>
<organization>Zenplex</organization>
<roles>
<role>Founder</role>
<role>Release Manager</role>
</roles>
</developer>
</developers>
<contributors>
<contributor>
<name>Martin van dem Bemt</name>
<email>mvdb@mvdb.com</email>
</contributor>
</contributors>
<dependencies>
<dependency>
<groupId>g1</groupId>
<artifactId>d1</artifactId>
<version>1.0</version>
<url>d1-url</url>
</dependency>
<dependency>
<groupId>g2</groupId>
<artifactId>d2</artifactId>
<version>2.0</version>
<url>d2-url</url>
</dependency>
</dependencies>
<build>
<nagEmailAddress>jason@maven.org</nagEmailAddress>
<sourceDirectory>/sourceDirectory</sourceDirectory>
<unitTestSourceDirectory>/unitTestSourceDirectory</unitTestSourceDirectory>
<unitTest>
<includes>
<include>**/*Test.java</include>
</includes>
<excludes>
<exclude>**/RepositoryTest.java</exclude>
<exclude>**/JAXPTest.java</exclude>
</excludes>
<resources>
<resource>
<directory>${basedir}/src/test</directory>
<includes>
<include>**/*.xml</include>
</includes>
</resource>
</resources>
</unitTest>
<resources>
<resource>
<directory>/src/conf</directory>
<includes>
<include>*.xsd</include>
<include>*.dtd</include>
<include>*.mod</include>
<include>log4j.properties</include>
<include>driver.jelly</include>
<include>driver.properties</include>
</includes>
</resource>
<resource>
<directory>/src/messages</directory>
<targetPath>org/apache/maven/messages</targetPath>
<includes>
<include>messages*.properties</include>
</includes>
</resource>
</resources>
</build>
<reports>
<report>maven-jdepend-plugin</report>
<report>maven-checkstyle-plugin</report>
<report>maven-changelog-plugin</report>
<report>maven-file-activity-plugin</report>
<report>maven-developer-activity-plugin</report>
<report>maven-javadoc-plugin</report>
<report>maven-jxr-plugin</report>
<report>maven-junit-report-plugin</report>
<report>maven-tasklist-plugin</report>
<report>maven-jellydoc-plugin</report>
</reports>
</model>

View File

@ -0,0 +1,21 @@
<model>
<groupId>maven-test</groupId>
<artifactId>maven-test-a</artifactId>
<packaging>jar</packaging>
<dependencies>
<dependency>
<groupId>maven-test</groupId>
<artifactId>maven-test-b</artifactId>
<version>1.0</version>
<type>jar</type>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>maven-test</groupId>
<artifactId>maven-test-z</artifactId>
<version>1.0</version>
<type>jar</type>
<scope>compile</scope>
</dependency>
</dependencies>
</model>

View File

@ -0,0 +1,248 @@
<?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/maven-v4_0_0.xsd">
<parent>
<artifactId>maven</artifactId>
<groupId>org.apache.maven</groupId>
<version>2.1-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>maven-embedder</artifactId>
<name>Maven Embedder</name>
<dependencies>
<dependency>
<groupId>org.apache.maven</groupId>
<artifactId>maven-core</artifactId>
<version>2.1-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.codehaus.plexus</groupId>
<artifactId>plexus-container-default</artifactId>
</dependency>
<dependency>
<groupId>jdom</groupId>
<artifactId>jdom</artifactId>
</dependency>
<!-- CLI -->
<dependency>
<groupId>commons-cli</groupId>
<artifactId>commons-cli</artifactId>
<version>1.0</version>
<exclusions>
<exclusion>
<artifactId>commons-lang</artifactId>
<groupId>commons-lang</groupId>
</exclusion>
<exclusion>
<artifactId>commons-logging</artifactId>
<groupId>commons-logging</groupId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.apache.maven.wagon</groupId>
<artifactId>wagon-http-lightweight</artifactId>
</dependency>
<dependency>
<groupId>org.apache.maven.wagon</groupId>
<artifactId>wagon-ssh</artifactId>
</dependency>
<dependency>
<groupId>org.apache.maven.wagon</groupId>
<artifactId>wagon-ssh-external</artifactId>
</dependency>
<dependency>
<groupId>org.apache.maven.wagon</groupId>
<artifactId>wagon-file</artifactId>
</dependency>
</dependencies>
<distributionManagement>
<site>
<id>apache.website</id>
<url>scp://people.apache.org/www/maven.apache.org/embedder/${project.version}/</url>
</site>
</distributionManagement>
<profiles>
<profile>
<!--
|
| This profile is specifically for creating an embedder that can be used for IntelliJ integration. We need to
| remove the JDOM JAR because IntelliJ include its own version, and the JTidy JAR includes org.xml.* classes
| which causes a loader constraint issues while loading the embedder.
|
-->
<id>idea</id>
<build>
<plugins>
<plugin>
<artifactId>shade-maven-plugin</artifactId>
<groupId>org.codehaus.mojo</groupId>
<version>1.0-alpha-12</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<!-- The IDEA folks don't want to put SNAPSHOT libs in their projects even though they are -->
<finalName>maven-embedder-idea-2.1</finalName>
<createDependencyReducedPom>false</createDependencyReducedPom>
<keepDependenciesWithProvidedScope>true</keepDependenciesWithProvidedScope>
<transformers>
<transformer implementation="org.codehaus.mojo.shade.resource.ComponentsXmlResourceTransformer"/>
</transformers>
<artifactSet>
<excludes>
<exclude>org.codehaus.plexus:plexus-component-api</exclude>
<exclude>classworlds:classworlds</exclude>
<exclude>junit:junit</exclude>
<exclude>jmock:jmock</exclude>
<exclude>xml-apis:xml-apis</exclude>
<!-- So this is required for the IDEA embedder which already has its own copy of JDOM -->
<exclude>jdom:jdom</exclude>
<exclude>jtidy:jtidy</exclude>
</excludes>
</artifactSet>
<relocations>
<relocation>
<pattern>org.codehaus.plexus.util</pattern>
<excludes>
<exclude>org.codehaus.plexus.util.xml.Xpp3Dom</exclude>
<exclude>org.codehaus.plexus.util.xml.pull.*</exclude>
</excludes>
</relocation>
</relocations>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
<profile>
<!--
|
| This profile is specifically for creating an embedder that can be used for Eclipse integration. We need to
| need a single embedder JAR that looks like an OSGi bundle.
|
-->
<id>tycho</id>
<properties>
<bundleVersion>2.1.0.v20070901-1427</bundleVersion>
</properties>
<build>
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
</resource>
</resources>
<plugins>
<plugin>
<artifactId>shade-maven-plugin</artifactId>
<groupId>org.codehaus.mojo</groupId>
<version>1.0-alpha-12</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<finalName>maven-embedder-tycho-${bundleVersion}</finalName>
<createDependencyReducedPom>false</createDependencyReducedPom>
<keepDependenciesWithProvidedScope>true</keepDependenciesWithProvidedScope>
<transformers>
<transformer implementation="org.codehaus.mojo.shade.resource.ComponentsXmlResourceTransformer"/>
</transformers>
<artifactSet>
<excludes>
<exclude>org.codehaus.plexus:plexus-component-api</exclude>
<exclude>classworlds:classworlds</exclude>
<exclude>junit:junit</exclude>
<exclude>jmock:jmock</exclude>
<exclude>xml-apis:xml-apis</exclude>
</excludes>
</artifactSet>
<relocations>
<relocation>
<pattern>org.codehaus.plexus.util</pattern>
<excludes>
<exclude>org.codehaus.plexus.util.xml.Xpp3Dom</exclude>
<exclude>org.codehaus.plexus.util.xml.pull.*</exclude>
</excludes>
</relocation>
</relocations>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>standard</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<build>
<plugins>
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<version>2.2-beta-1</version>
<executions>
<execution>
<id>create-distro</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
<configuration>
<descriptor>src/main/assembly/bin.xml</descriptor>
<finalName>maven-${pom.version}</finalName>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
<profile>
<!-- Single Test -->
<id>st</id>
<build>
<plugins>
<plugin>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<includes>
<include>**/MavenEmbedderTest.java</include>
</includes>
</configuration>
</plugin>
</plugins>
</build>
</profile>
</profiles>
</project>

View File

@ -0,0 +1,6 @@
main is org.apache.maven.cli.MavenCli from plexus.core
set maven.home default ${user.home}/m2
[plexus.core]
load ${maven.home}/lib/*.jar

View File

@ -0,0 +1,164 @@
#!/bin/sh
# ----------------------------------------------------------------------------
# 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.
# ----------------------------------------------------------------------------
# ----------------------------------------------------------------------------
# Maven2 Start Up Batch script
#
# Required ENV vars:
# ------------------
# JAVA_HOME - location of a JDK home dir
#
# Optional ENV vars
# -----------------
# M2_HOME - location of maven2's installed home dir
# MAVEN_OPTS - parameters passed to the Java VM when running Maven
# e.g. to debug Maven itself, use
# set MAVEN_OPTS=-Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
# ----------------------------------------------------------------------------
QUOTED_ARGS=""
while [ "$1" != "" ] ; do
QUOTED_ARGS="$QUOTED_ARGS \"$1\""
shift
done
if [ -f /etc/mavenrc ] ; then
. /etc/mavenrc
fi
if [ -f "$HOME/.mavenrc" ] ; then
. "$HOME/.mavenrc"
fi
# OS specific support. $var _must_ be set to either true or false.
cygwin=false;
darwin=false;
mingw=false
case "`uname`" in
CYGWIN*) cygwin=true ;;
MINGW*) mingw=true;;
Darwin*) darwin=true
if [ -z "$JAVA_VERSION" ] ; then
JAVA_VERSION="CurrentJDK"
else
echo "Using Java version: $JAVA_VERSION"
fi
if [ -z "$JAVA_HOME" ] ; then
JAVA_HOME=/System/Library/Frameworks/JavaVM.framework/Versions/${JAVA_VERSION}/Home
fi
;;
esac
if [ -z "$JAVA_HOME" ] ; then
if [ -r /etc/gentoo-release ] ; then
JAVA_HOME=`java-config --jre-home`
fi
fi
if [ -z "$M2_HOME" ] ; then
## resolve links - $0 may be a link to maven's home
PRG="$0"
# need this for relative symlinks
while [ -h "$PRG" ] ; do
ls=`ls -ld "$PRG"`
link=`expr "$ls" : '.*-> \(.*\)$'`
if expr "$link" : '/.*' > /dev/null; then
PRG="$link"
else
PRG="`dirname "$PRG"`/$link"
fi
done
saveddir=`pwd`
M2_HOME=`dirname "$PRG"`/..
# make it fully qualified
M2_HOME=`cd "$M2_HOME" && pwd`
cd "$saveddir"
# echo Using m2 at $M2_HOME
fi
# For Cygwin, ensure paths are in UNIX format before anything is touched
if $cygwin ; then
[ -n "$M2_HOME" ] &&
M2_HOME=`cygpath --unix "$M2_HOME"`
[ -n "$JAVA_HOME" ] &&
JAVA_HOME=`cygpath --unix "$JAVA_HOME"`
[ -n "$CLASSPATH" ] &&
CLASSPATH=`cygpath --path --unix "$CLASSPATH"`
fi
# For Migwn, ensure paths are in UNIX format before anything is touched
if $mingw ; then
[ -n "$M2_HOME" ] &&
M2_HOME="`(cd "$M2_HOME"; pwd)`"
[ -n "$JAVA_HOME" ] &&
JAVA_HOME="`(cd "$JAVA_HOME"; pwd)`"
# TODO classpath?
fi
if [ -z "$JAVACMD" ] ; then
if [ -n "$JAVA_HOME" ] ; then
if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
# IBM's JDK on AIX uses strange locations for the executables
JAVACMD="$JAVA_HOME/jre/sh/java"
else
JAVACMD="$JAVA_HOME/bin/java"
fi
else
JAVACMD=java
fi
fi
if [ ! -x "$JAVACMD" ] ; then
echo "Error: JAVA_HOME is not defined correctly."
echo " We cannot execute $JAVACMD"
exit 1
fi
if [ -z "$JAVA_HOME" ] ; then
echo "Warning: JAVA_HOME environment variable is not set."
fi
CLASSWORLDS_LAUNCHER=org.codehaus.plexus.classworlds.launcher.Launcher
# For Cygwin, switch paths to Windows format before running java
if $cygwin; then
[ -n "$M2_HOME" ] &&
M2_HOME=`cygpath --path --windows "$M2_HOME"`
[ -n "$JAVA_HOME" ] &&
JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"`
[ -n "$HOME" ] &&
HOME=`cygpath --path --windows "$HOME"`
fi
exec "$JAVACMD" \
$MAVEN_OPTS \
-classpath "${M2_HOME}"/boot/plexus-classworlds-*.jar \
"-Dclassworlds.conf=${M2_HOME}/bin/m2.conf" \
"-Dmaven.home=${M2_HOME}" \
${CLASSWORLDS_LAUNCHER} $QUOTED_ARGS

View File

@ -0,0 +1,158 @@
@REM ----------------------------------------------------------------------------
@REM Licensed to the Apache Software Foundation (ASF) under one
@REM or more contributor license agreements. See the NOTICE file
@REM distributed with this work for additional information
@REM regarding copyright ownership. The ASF licenses this file
@REM to you under the Apache License, Version 2.0 (the
@REM "License"); you may not use this file except in compliance
@REM with the License. You may obtain a copy of the License at
@REM
@REM http://www.apache.org/licenses/LICENSE-2.0
@REM
@REM Unless required by applicable law or agreed to in writing,
@REM software distributed under the License is distributed on an
@REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
@REM KIND, either express or implied. See the License for the
@REM specific language governing permissions and limitations
@REM under the License.
@REM ----------------------------------------------------------------------------
@REM ----------------------------------------------------------------------------
@REM Maven2 Start Up Batch script
@REM
@REM Required ENV vars:
@REM JAVA_HOME - location of a JDK home dir
@REM
@REM Optional ENV vars
@REM M2_HOME - location of maven2's installed home dir
@REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands
@REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a key stroke before ending
@REM MAVEN_OPTS - parameters passed to the Java VM when running Maven
@REM e.g. to debug Maven itself, use
@REM set MAVEN_OPTS=-Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
@REM ----------------------------------------------------------------------------
@REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on'
@echo off
@REM enable echoing my setting MAVEN_BATCH_ECHO to 'on'
@if "%MAVEN_BATCH_ECHO%" == "on" echo %MAVEN_BATCH_ECHO%
@REM Execute a user defined script before this one
if exist "%HOME%\mavenrc_pre.bat" call "%HOME%\mavenrc_pre.bat"
set ERROR_CODE=0
@REM set local scope for the variables with windows NT shell
if "%OS%"=="Windows_NT" @setlocal
@REM ==== START VALIDATION ====
if not "%JAVA_HOME%" == "" goto OkJHome
echo.
echo ERROR: JAVA_HOME not found in your environment.
echo Please set the JAVA_HOME variable in your environment to match the
echo location of your Java installation
echo.
goto error
:OkJHome
if exist "%JAVA_HOME%\bin\java.exe" goto chkMHome
echo.
echo ERROR: JAVA_HOME is set to an invalid directory.
echo JAVA_HOME = %JAVA_HOME%
echo Please set the JAVA_HOME variable in your environment to match the
echo location of your Java installation
echo.
goto error
:chkMHome
if not "%M2_HOME%"=="" goto valMHome
if "%OS%"=="Windows_NT" SET M2_HOME=%~dp0\..
if not "%M2_HOME%"=="" goto valMHome
echo.
echo ERROR: M2_HOME not found in your environment.
echo Please set the M2_HOME variable in your environment to match the
echo location of the Maven installation
echo.
goto error
:valMHome
if exist "%M2_HOME%\bin\mvn.bat" goto init
echo.
echo ERROR: M2_HOME is set to an invalid directory.
echo M2_HOME = %M2_HOME%
echo Please set the M2_HOME variable in your environment to match the
echo location of the Maven installation
echo.
goto error
@REM ==== END VALIDATION ====
:init
@REM Decide how to startup depending on the version of windows
@REM -- Win98ME
if NOT "%OS%"=="Windows_NT" goto Win9xArg
@REM -- 4NT shell
if "%eval[2+2]" == "4" goto 4NTArgs
@REM -- Regular WinNT shell
set MAVEN_CMD_LINE_ARGS=%*
goto endInit
@REM The 4NT Shell from jp software
:4NTArgs
set MAVEN_CMD_LINE_ARGS=%$
goto endInit
:Win9xArg
@REM Slurp the command line arguments. This loop allows for an unlimited number
@REM of agruments (up to the command line limit, anyway).
set MAVEN_CMD_LINE_ARGS=
:Win9xApp
if %1a==a goto endInit
set MAVEN_CMD_LINE_ARGS=%MAVEN_CMD_LINE_ARGS% %1
shift
goto Win9xApp
@REM Reaching here means variables are defined and arguments have been captured
:endInit
SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe"
@REM Start MAVEN2
for %%i in ("%M2_HOME%"\boot\plexus-classworlds-*) do set CLASSWORLDS_JAR="%%i"
%MAVEN_JAVA_EXE% %MAVEN_OPTS% -classpath %CLASSWORLDS_JAR% "-Dclassworlds.conf=%M2_HOME%\bin\m2.conf" "-Dmaven.home=%M2_HOME%" org.codehaus.plexus.classworlds.launcher.Launcher %MAVEN_CMD_LINE_ARGS%
if ERRORLEVEL 1 goto error
goto end
:error
if "%OS%"=="Windows_NT" @endlocal
set ERROR_CODE=1
:end
@REM set local scope for the variables with windows NT shell
if "%OS%"=="Windows_NT" goto endNT
@REM For old DOS remove the set variables from ENV - we assume they were not set
@REM before we started - at least we don't leave any baggage around
set MAVEN_JAVA_EXE=
set MAVEN_CMD_LINE_ARGS=
goto postExec
:endNT
@endlocal
:postExec
if exist "%HOME%\mavenrc_post.bat" call "%HOME%\mavenrc_post.bat"
@REM pause the batch file if MAVEN_BATCH_PAUSE is set to 'on'
if "%MAVEN_BATCH_PAUSE%" == "on" pause
if "%MAVEN_TERMINATE_CMD%" == "on" exit %ERROR_CODE%
exit /B %ERROR_CODE%

View File

@ -0,0 +1,24 @@
#!/bin/sh
# ----------------------------------------------------------------------------
# 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.
# ----------------------------------------------------------------------------
export M2_HOME=$HOME/m2
export JRUBY_HOME=$HOME/jruby
export CLASSPATH=$M2_HOME/lib/maven-embedder-2.1-SNAPSHOT-uber.jar
$JRUBY_HOME/bin/jruby $M2_HOME/bin/mvnr.rb

View File

@ -0,0 +1,40 @@
# 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.
require 'java'
class Maven
def initialize goals
@goals = goals
end
include_class 'java.io.File'
include_class 'org.apache.maven.embedder.MavenEmbedder'
include_class 'org.apache.maven.embedder.DefaultConfiguration'
include_class 'org.apache.maven.execution.DefaultMavenExecutionRequest'
def run
configuration = DefaultConfiguration.new
maven = MavenEmbedder.new(configuration)
r = DefaultMavenExecutionRequest.new
r.setBaseDirectory( File.new( "." ) )
r.setGoals( @goals )
result = maven.execute( r );
end
end
m = Maven.new( ["clean"] ).run

View File

@ -0,0 +1,241 @@
<!--
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>
-->
</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>

View File

@ -0,0 +1,39 @@
<!--
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/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.apache.maven.embedder</groupId>
<artifactId>simple-project</artifactId>
<version>1.0-SNAPSHOT</version>
<name>simple-project</name>
<url>http://maven.apache.org</url>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
</dependencies>
<properties>
<environment>development</environment>
</properties>
</project>

View File

@ -0,0 +1,26 @@
<?xml version="1.0"?>
<!--
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.
-->
<settings>
<pluginGroups>
<pluginGroup>org.codehaus.tycho</pluginGroup>
<pluginGroup>org.sonatype.pwt</pluginGroup>
</pluginGroups>
</settings>

View File

@ -0,0 +1,86 @@
<!--
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.
-->
<assembly>
<id>bin</id>
<formats>
<format>tar.gz</format>
<format>tar.bz2</format>
<format>zip</format>
</formats>
<dependencySets>
<dependencySet>
<outputDirectory>boot</outputDirectory>
<includes>
<include>org.codehaus.plexus:plexus-classworlds</include>
</includes>
</dependencySet>
<dependencySet>
<outputDirectory>lib</outputDirectory>
<excludes>
<exclude>org.codehaus.plexus:plexus-classworlds</exclude>
<exclude>org.codehaus.plexus:plexus-component-api</exclude>
<exclude>classworlds:classworlds</exclude>
<exclude>junit:junit</exclude>
<exclude>jmock:jmock</exclude>
<exclude>xml-apis:xml-apis</exclude>
<exclude>org.apache.maven:maven-artifact</exclude>
</excludes>
</dependencySet>
</dependencySets>
<fileSets>
<fileSet>
<includes>
<include>README*</include>
<include>LICENSE*</include>
<include>NOTICE*</include>
</includes>
</fileSet>
<fileSet>
<directory>src/bin</directory>
<outputDirectory>bin</outputDirectory>
<includes>
<include>*.bat</include>
<include>*.conf</include>
</includes>
<lineEnding>dos</lineEnding>
</fileSet>
<fileSet>
<directory>src/bin</directory>
<outputDirectory>bin</outputDirectory>
<includes>
<include>m2</include>
<include>mvn</include>
</includes>
<lineEnding>unix</lineEnding>
<fileMode>0755</fileMode>
</fileSet>
<fileSet>
<directory>src/conf</directory>
<outputDirectory>conf</outputDirectory>
</fileSet>
<fileSet>
<directory>target</directory>
<outputDirectory>lib</outputDirectory>
<includes>
<include>maven*.jar</include>
</includes>
</fileSet>
</fileSets>
</assembly>

View File

@ -0,0 +1,35 @@
<!--
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.
-->
<assembly>
<id>dependency-repository</id>
<formats>
<format>tar.gz</format>
<format>tar.bz2</format>
<format>zip</format>
</formats>
<baseDirectory>repository</baseDirectory>
<repositories>
<repository>
<includeMetadata>true</includeMetadata>
<scope>runtime</scope>
<outputDirectory>/</outputDirectory>
</repository>
</repositories>
</assembly>

View File

@ -0,0 +1,7 @@
Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: Maven 2.x Embedder Plug-in
Bundle-Vendor: maven.org
Bundle-SymbolicName: org.maven.ide.embedder
Bundle-Version: ${bundleVersion}
Bundle-ClassPath: .

View File

@ -0,0 +1,36 @@
<!--
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.
-->
<component-set>
<components>
<component>
<role>org.apache.maven.embedder.execution.MavenExecutionRequestPopulator</role>
<implementation>org.apache.maven.embedder.execution.DefaultMavenExecutionRequestPopulator</implementation>
<requirements>
<requirement>
<role>org.apache.maven.artifact.manager.WagonManager</role>
<role-hint>default</role-hint>
</requirement>
<requirement>
<role>org.apache.maven.artifact.repository.ArtifactRepositoryFactory</role>
</requirement>
</requirements>
</component>
</components>
</component-set>

View File

@ -0,0 +1,54 @@
------
The Maven Embedder
------
Jason van Zyl
------
26 February 2007
------
The Maven Embedder
The Maven Embedder is used by the Maven CLI, by IDE integration projects like {{{http://mevenide.codehaus.org}Mevenide}}
and potentially any tool that needs to embed Maven's capabilities. You could embed Maven in a Continuous Integration
application to run Maven build, an application lifecycle management (ALF) tool, or Ant tasks that utilize Maven's
functionality. These are just a few examples of what the Maven Embedder can be used for.
A Simple Example
%{snippet|id=simple-embedder-example|url=http://svn.apache.org/repos/asf/maven/components/trunk/maven-embedder/src/test/java/org/apache/maven/embedder/MavenEmbedderExampleTest.java}
A Note on Configuring Settings
Currently there is a notion of a user settings, and a global settings where either can specify information about the
following:
* Local Repository
* Proxies
* Mirrors
* Server Configurations
* Plugin Groups
[]
If you are using the embedder it is entirely your responsibility to take user and global settings information and specify
it in the embedder configuration. The embedder carries with it <<<no>>> defaults about where these are located and how
they are used. If you want your embedded use of Maven to mimic the behavior of the Maven CLI insofar as settings use
then use the following code:
%{snippet|id=mimic-cli|url=http://svn.apache.org/repos/asf/maven/components/trunk/maven-embedder/src/test/java/org/apache/maven/embedder/MavenEmbedderExampleTest.java}
Also note that the user and global settings are merged, and the user settings are dominant.
Accessing the Underlying Plexus Container
Though it is not recommended for general use, it is possible to get at the underlying Plexus Container instance if you
wish to lookup custom components. The Maven Embedder was specifically designed to be used for Maven and not a general
purpose use of Plexus. So if you use this method then you use it at your peril. You can access the Plexus Container
using the following:
%{snippet|id=plexus-container|url=http://svn.apache.org/repos/asf/maven/components/trunk/maven-embedder/src/test/java/org/apache/maven/embedder/MavenEmbedderExampleTest.java}

View File

@ -0,0 +1,61 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<!--
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.
-->
<!--
~ 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 name="Maven Embedder">
<skin>
<groupId>org.apache.maven.skins</groupId>
<artifactId>maven-stylus-skin</artifactId>
<version>1.0-SNAPSHOT</version>
</skin>
<bannerLeft>
<name>Maven</name>
<src>http://maven.apache.org/maven2/images/apache-maven-project-2.png</src>
<href>http://maven.apache.org/</href>
</bannerLeft>
<bannerRight>
<src>http://maven.apache.org/maven2/images/maven-logo-2.gif</src>
</bannerRight>
<body>
<links>
</links>
<menu name="Quick Links">
<item name="Home" href="/index.html"/>
</menu>
</body>
</project>

View File

@ -0,0 +1,47 @@
<!--
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/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.apache.maven</groupId>
<artifactId>embedder-test-project</artifactId>
<packaging>jar</packaging>
<version>1.0-SNAPSHOT</version>
<name>Maven Quick Start Archetype</name>
<url>http://maven.apache.org</url>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
</dependencies>
<profiles>
<profile>
<id>embedderProfile</id>
<properties>
<embedderProfile>true</embedderProfile>
<name>jason</name>
<occupation>somnambulance</occupation>
</properties>
</profile>
</profiles>
</project>

View File

@ -0,0 +1,27 @@
<!--
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.
-->
<component-set>
<components>
<component>
<role>org.apache.maven.artifact.factory.ArtifactFactory</role>
<implementation>org.apache.maven.embedder.CustomArtifactFactory</implementation>
</component>
</components>
</component-set>

View File

@ -0,0 +1,18 @@
<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/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>test</groupId>
<artifactId>child-1</artifactId>
<packaging>jar</packaging>
<version>1.0-SNAPSHOT</version>
<name>child-1</name>
<url>http://maven.apache.org</url>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
</dependencies>
</project>

View File

@ -0,0 +1,23 @@
<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/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>test</groupId>
<artifactId>child-2</artifactId>
<packaging>jar</packaging>
<version>1.0-SNAPSHOT</version>
<name>child-2</name>
<url>http://maven.apache.org</url>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.apache.maven.test</groupId>
<artifactId>child-1</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
</dependencies>
</project>

View File

@ -0,0 +1,22 @@
<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/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>test</groupId>
<artifactId>parent</artifactId>
<packaging>pom</packaging>
<version>1.0-SNAPSHOT</version>
<name>no-artifact-in-repository-test</name>
<url>http://maven.apache.org</url>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
</dependencies>
<modules>
<module>child-1</module>
<module>child-2</module>
</modules>
</project>

View File

@ -0,0 +1,18 @@
# 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.
version=2.1-SNAPSHOT

View File

@ -0,0 +1,30 @@
<?xml version="1.0"?>
<!--
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>
<modelVersion>4.0.0</modelVersion>
<groupId>org.apache.maven</groupId>
<artifactId>test</artifactId>
<version>1.0</version>
<distributionManagement>
<status>deployed</status>
</distributionManagement>
</project>