You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by pg...@apache.org on 2009/05/06 20:30:14 UTC
svn commit: r772397 - in
/maven/ant-tasks/branches/maven-ant-tasks-2.0.x/src/site: apt/examples/
apt/examples/dependencies.apt apt/examples/install-deploy.apt
apt/examples/pom.apt apt/index.apt apt/reference.apt apt/usage.apt site.xml
Author: pgier
Date: Wed May 6 18:30:13 2009
New Revision: 772397
URL: http://svn.apache.org/viewvc?rev=772397&view=rev
Log:
[MANTTASKS-146] Split content of usage page into a few examples pages. Other general site updates.
Added:
maven/ant-tasks/branches/maven-ant-tasks-2.0.x/src/site/apt/examples/
maven/ant-tasks/branches/maven-ant-tasks-2.0.x/src/site/apt/examples/dependencies.apt (with props)
maven/ant-tasks/branches/maven-ant-tasks-2.0.x/src/site/apt/examples/install-deploy.apt (with props)
maven/ant-tasks/branches/maven-ant-tasks-2.0.x/src/site/apt/examples/pom.apt (with props)
Modified:
maven/ant-tasks/branches/maven-ant-tasks-2.0.x/src/site/apt/index.apt
maven/ant-tasks/branches/maven-ant-tasks-2.0.x/src/site/apt/reference.apt
maven/ant-tasks/branches/maven-ant-tasks-2.0.x/src/site/apt/usage.apt
maven/ant-tasks/branches/maven-ant-tasks-2.0.x/src/site/site.xml
Added: maven/ant-tasks/branches/maven-ant-tasks-2.0.x/src/site/apt/examples/dependencies.apt
URL: http://svn.apache.org/viewvc/maven/ant-tasks/branches/maven-ant-tasks-2.0.x/src/site/apt/examples/dependencies.apt?rev=772397&view=auto
==============================================================================
--- maven/ant-tasks/branches/maven-ant-tasks-2.0.x/src/site/apt/examples/dependencies.apt (added)
+++ maven/ant-tasks/branches/maven-ant-tasks-2.0.x/src/site/apt/examples/dependencies.apt Wed May 6 18:30:13 2009
@@ -0,0 +1,133 @@
+ ------
+ Dependencies
+ ------
+ Brett Porter
+ Herve Boutemy
+ Paul Gier
+ ------
+ 2009-05-06
+ ------
+
+ ~~ 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.
+
+ ~~ NOTE: For help with the syntax of this file, see:
+ ~~ http://maven.apache.org/doxia/references/apt-format.html
+
+Basic Example
+
+ The following example declares three dependencies and adds them to the pathId <<<dependency.classpath>>>.
+
+-----
+<artifact:dependencies pathId="dependency.classpath">
+ <dependency groupId="junit" artifactId="junit" version="3.8.2" scope="test"/>
+ <dependency groupId="org.codehaus.modello" artifactId="modello-core" version="1.0-alpha-2-SNAPSHOT"/>
+ <dependency groupId="javax.servlet" artifactId="servlet-api" version="2.4" scope="provided"/>
+</artifact:dependencies>
+-----
+
+ The pathId can be used in the ant build file for example in the <<<javac>>> task.
+
+-----
+<javac ...>
+ <classpath refid="dependency.classpath" />
+ ...
+</javac>
+-----
+
+Using FileSets and the Version Mapper
+
+ Another option you can use is <<<filesetId>>>, which will give you a fileset reference that can be used to copy
+ files into a particular location. For example, to populate <<<WEB-INF/lib>>> with your dependencies
+ you could use the following:
+
+-----
+<artifact:dependencies filesetId="dependency.fileset" useScope="runtime">
+ <!-- Your dependency definitions go here -->
+ ...
+</artifact:dependencies>
+<copy todir="${webapp.output}/WEB-INF/lib">
+ <fileset refid="dependency.fileset" />
+ <!-- This mapper strips off all leading directory information -->
+ <mapper type="flatten" />
+</copy>
+-----
+
+ Note the <<<useScope>>> attribute in this call. This ensures that your web application only includes your compile
+ and runtime dependencies, excluding those that are only for testing or are expected to already be provided by
+ the servlet container.
+
+ You can also specify a <<<scope>>> parameter on each dependency. This changes the behavior of
+ transitive dependencies and is useful for building different types of classpaths. To see how it affects
+ the behaviour of the dependencies, see the {{{http://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html} Dependency Mechanism}}
+ documentation on the Maven 2.0 site.
+
+ Other options are:
+
+ * <<<sourcesFilesetId>>>, which will give you a fileset reference containing sources artifacts, <(since 2.0.6)>
+
+ * <<<javadocFilesetId>>>, which will give you a fileset reference containing javadoc artifacts, <(since 2.0.9)>
+
+ * {<<<versionsId>>>}, which can be used to drop version numbers in filenames <(since 2.0.7)>
+
+ For example, to populate <<<lib>>> with your dependencies without the version in the filenames, <<<lib/src>>> with the corresponding sources
+ and <<<lib/javadoc>>> with the corresponding javadocs:
+
+-----
+<artifact:dependencies filesetId="dependency.fileset"
+ sourcesFilesetId="sources.dependency.fileset"
+ javadocFilesetId="javadoc.dependency.fileset"
+ versionsId="dependency.versions">
+ <!-- Your dependency definitions go here -->
+ ...
+</artifact:dependencies>
+<copy todir="lib">
+ <fileset refid="dependency.fileset" />
+ <mapper classpathref="maven-ant-tasks.classpath"
+ classname="org.apache.maven.artifact.ant.VersionMapper"
+ from="${dependency.versions}" to="flatten" />
+</copy>
+<copy todir="lib/src">
+ <fileset refid="sources.dependency.fileset" />
+ <mapper classpathref="maven-ant-tasks.classpath"
+ classname="org.apache.maven.artifact.ant.VersionMapper"
+ from="${dependency.versions}" to="flatten" />
+</copy>
+<copy todir="lib/javadoc">
+ <fileset refid="javadoc.dependency.fileset" />
+ <mapper classpathref="maven-ant-tasks.classpath"
+ classname="org.apache.maven.artifact.ant.VersionMapper"
+ from="${dependency.versions}" to="flatten" />
+</copy>
+-----
+
+ <<Note:>> In the above example you only need to specify
+ <<<classpathref="maven-ant-tasks.classpath">>> if are using Maven Ant Tasks
+ by {{{../installation.html#typedef} declaring a <<<typedef>>>}}.
+ It can be omitted if Maven Ant Tasks was
+ {{{../installation.html#lib} installed in Ant's <<<lib>>> directory}}.
+
+Using Properties to Access Dependencies
+
+ <(since 2.0.8)> For each dependency resolved using either inline declaration or a pom reference, the property
+ <<<groupId:artifactId:type[:classifier]>>> is defined pointing to the corresponding file. For example,
+ a resolved dependency on junit can be accessed in the following way:
+
+-----
+<echo message="JUnit jar file downloaded to ${junit:junit:jar}"/>
+-----
+
Propchange: maven/ant-tasks/branches/maven-ant-tasks-2.0.x/src/site/apt/examples/dependencies.apt
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: maven/ant-tasks/branches/maven-ant-tasks-2.0.x/src/site/apt/examples/dependencies.apt
------------------------------------------------------------------------------
svn:keywords = Author Date Id Revision
Added: maven/ant-tasks/branches/maven-ant-tasks-2.0.x/src/site/apt/examples/install-deploy.apt
URL: http://svn.apache.org/viewvc/maven/ant-tasks/branches/maven-ant-tasks-2.0.x/src/site/apt/examples/install-deploy.apt?rev=772397&view=auto
==============================================================================
--- maven/ant-tasks/branches/maven-ant-tasks-2.0.x/src/site/apt/examples/install-deploy.apt (added)
+++ maven/ant-tasks/branches/maven-ant-tasks-2.0.x/src/site/apt/examples/install-deploy.apt Wed May 6 18:30:13 2009
@@ -0,0 +1,93 @@
+ ------
+ Install and Deploy
+ ------
+ Brett Porter
+ Herve Boutemy
+ Paul Gier
+ ------
+ 2009-05-06
+ ------
+
+ ~~ 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.
+
+ ~~ NOTE: For help with the syntax of this file, see:
+ ~~ http://maven.apache.org/doxia/references/apt-format.html
+
+Install and Deploy
+
+ If you want to share your built artifacts between projects, you can use two other tasks: <<<install>>> for
+ installing them in your local repository for access as dependencies in other scripts, and <<<deploy>>> for
+ deploying them to a remote location you have set up to serve as a repository in your organisation.
+
+ <<Note:>> that the installation and deployment require that you have a Maven 2.0 POM file to deploy along with it.
+ These are required for the transitive dependency mechanism to work effectively, and can be quite simple to
+ create.
+
+ The following example shows basic use of the <<<install>>> and <<<deploy>>> tasks.
+
+-----
+...
+ <artifact:pom id="mypom" file="pom.xml" />
+
+ <artifact:install file="target/my-project-1.0.jar">
+ <pom refid="mypom"/>
+ </artifact:install>
+
+ <artifact:deploy file="target/my-project-1.0.jar">
+ <remoteRepository url="file://localhost/www/repository"/>
+ <pom refid="mypom"/>
+ </artifact:deploy>
+...
+-----
+
+ For deploying using a protocol other than local file system, you need to register a provider to make the other
+ protocols available. For example:
+
+-----
+...
+ <artifact:install-provider artifactId="wagon-ssh" version="1.0-beta-2"/>
+
+ <artifact:deploy file="target/my-project-1.0.jar">
+ <remoteRepository url="scp://localhost/www/repository">
+ <authentication username="${repository.username}" privateKey="${user.home}/.ssh/id_dsa"/>
+ </remoteRepository>
+ <pom refid="mypom"/>
+ </artifact:deploy>
+...
+-----
+
+ <<Note:>> that if you use <<<antcall>>>, the provider isn't available during the Ant call: you have to register
+ it again if you need it.
+
+ ~~ TODO: Explain more thoroughly when you need to register a provider
+
+ Maven Ant Tasks contain <<<wagon-file>>> and <<<wagon-http-lightweight>>> providers. The other available providers are:
+
+*--------------+--------------------------+-------------------+
+| Protocol | Artifact ID | Version |
+*--------------+--------------------------+-------------------+
+| <<<http>>> | <<<wagon-http>>> | <<<1.0-beta-2>>> |
+*--------------+--------------------------+-------------------+
+| <<<scp>>> | <<<wagon-ssh>>> | <<<1.0-beta-2>>> |
+*--------------+--------------------------+-------------------+
+| <<<scpexe>>> | <<<wagon-ssh-external>>> | <<<1.0-beta-2>>> |
+*--------------+--------------------------+-------------------+
+| <<<ftp>>> | <<<wagon-ftp>>> | <<<1.0-beta-2>>> |
+*--------------+--------------------------+-------------------+
+| <<<webdav>>> | <<<wagon-webdav>>> | <<<1.0-beta-2>>> |
+*--------------+--------------------------+-------------------+
Propchange: maven/ant-tasks/branches/maven-ant-tasks-2.0.x/src/site/apt/examples/install-deploy.apt
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: maven/ant-tasks/branches/maven-ant-tasks-2.0.x/src/site/apt/examples/install-deploy.apt
------------------------------------------------------------------------------
svn:keywords = Author Date Id Revision
Added: maven/ant-tasks/branches/maven-ant-tasks-2.0.x/src/site/apt/examples/pom.apt
URL: http://svn.apache.org/viewvc/maven/ant-tasks/branches/maven-ant-tasks-2.0.x/src/site/apt/examples/pom.apt?rev=772397&view=auto
==============================================================================
--- maven/ant-tasks/branches/maven-ant-tasks-2.0.x/src/site/apt/examples/pom.apt (added)
+++ maven/ant-tasks/branches/maven-ant-tasks-2.0.x/src/site/apt/examples/pom.apt Wed May 6 18:30:13 2009
@@ -0,0 +1,135 @@
+ ------
+ Pom
+ ------
+ Brett Porter
+ Herve Boutemy
+ Paul Gier
+ ------
+ 2009-05-06
+ ------
+
+ ~~ 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.
+
+ ~~ NOTE: For help with the syntax of this file, see:
+ ~~ http://maven.apache.org/doxia/references/apt-format.html
+
+The Pom Task
+
+ In order to use the pom task, you will first need to define a pom (typically pom.xml).
+ An example pom is provided here:
+
+-----
+<project>
+ <modelVersion>4.0.0</modelVersion>
+ <groupId>com.mycompany.project</groupId>
+ <artifactId>project-model</artifactId>
+ <version>1.0-SNAPSHOT</version>
+
+ <dependencies>
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ <version>3.8.2</version>
+ <scope>test</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>org.codehaus.modello</groupId>
+ <artifactId>modello-core</artifactId>
+ <version>1.0-alpha-2-SNAPSHOT</version>
+ </dependency>
+
+ <dependency>
+ <groupId>javax.servlet</groupId>
+ <artifactId>servlet-api</artifactId>
+ <version>2.4</version>
+ <scope>provided</scope>
+ </dependency>
+ </dependencies>
+</project>
+-----
+
+ These elements represent:
+
+ * <modelVersion> - this is the version of the POM layout in use, currently <<<4.0.0>>>.
+
+ * <groupId> - the group ID represents your organisation and project name, much like a Java package name.
+ This must be universally unique. This becomes the base directory in the repository as well.
+
+ * <artifactId> - the artifact ID represents the current build unit. It usually equals the filename of the
+ resulting file, and must be unique within the group.
+
+ * <version> - the version of the artifact you are building.
+
+ * <dependencies> - the artifacts that this project is dependant on.
+
+ This is all that is required for most projects. However, it is also possible to use other fields available in
+ Maven to describe your project, and reference them from your build script.
+
+ To access a part of the POM as an Ant property, you must define it as a reference. For example, to access the version from a POM,
+ you can use the following:
+
+-----
+ <artifact:pom id="mypom" file="pom.xml" />
+
+ <echo>The version is ${mypom.version}</echo>
+-----
+
+ You can also access nested parts of the POM. For example, you can read the default value of the <<<directory>>>
+ element within the <<<build>>> element using a <<<.>>> separator.
+
+-----
+ <artifact:pom id="mypom" file="pom.xml" />
+
+ <echo>The build directory is ${mypom.build.directory}</echo>
+-----
+
+ For more information on the elements available in the POM, see the {{{http://maven.apache.org/maven-model/maven.html} descriptor reference}}.
+
+Accessing dependencies in the POM
+
+ The <<<pom>>> task can be used in combination with the <<<dependencies>>> task to declare a list of dependencies.
+
+-----
+ <artifact:pom id="mypom" file="pom.xml" />
+
+ <artifact:dependencies filesetId="mydeps" pomRefId="mypom" />
+-----
+
+ In this example, the <<<dependencies>>> task will resolve the list of dependencies in the pom
+ and add them to the fileset.
+
+Using profiles in the POM
+
+ POM profiles can be activated or deactivated using the nested profile element. For example
+ to activate a profile called <<my-profile>>.
+
+-----
+ <artifact:pom id="maven.project" file="pom.xml">
+ <profile id="my-profile"/>
+ </artifact:pom>
+-----
+
+ This can also be used to deactivate a POM profile that is active by default.
+
+-----
+ <artifact:pom id="maven.project" file="pom.xml">
+ <profile id="my-default-profile" active="false"/>
+ </artifact:pom>
+-----
+
Propchange: maven/ant-tasks/branches/maven-ant-tasks-2.0.x/src/site/apt/examples/pom.apt
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: maven/ant-tasks/branches/maven-ant-tasks-2.0.x/src/site/apt/examples/pom.apt
------------------------------------------------------------------------------
svn:keywords = Author Date Id Revision
Modified: maven/ant-tasks/branches/maven-ant-tasks-2.0.x/src/site/apt/index.apt
URL: http://svn.apache.org/viewvc/maven/ant-tasks/branches/maven-ant-tasks-2.0.x/src/site/apt/index.apt?rev=772397&r1=772396&r2=772397&view=diff
==============================================================================
--- maven/ant-tasks/branches/maven-ant-tasks-2.0.x/src/site/apt/index.apt (original)
+++ maven/ant-tasks/branches/maven-ant-tasks-2.0.x/src/site/apt/index.apt Wed May 6 18:30:13 2009
@@ -27,10 +27,10 @@
~~ NOTE: For help with the syntax of this file, see:
~~ http://maven.apache.org/doxia/references/apt-format.html
-Ant Tasks for Maven
+Maven Ant Tasks
- Maven comes with a set of Ant tasks that can be used to utilize Maven's artifact handling features
- from within Ant. This includes:
+ The Mavent Ant Tasks allow many of Maven's artifact handling features to be used
+ from within Ant. These include:
* <Dependency management> - including transitive dependencies, scope recognition and SNAPSHOT handling
@@ -38,10 +38,25 @@
* <POM processing> - for reading a Maven 2.0.x <<<pom.xml>>> file
- The Ant tasks can be downloaded from {{{http://maven.apache.org/download.html} Maven 2.0 download page}}.
+ The Ant tasks can be downloaded from the {{{http://maven.apache.org/download.html} Maven 2.0 download page}}.
Ant 1.6.x or 1.7.x is required to use Maven Ant tasks.
+* Usage
+
+ Instructions for installing and using the maven ant tasks can be found on the {{{installation.html}installation page}}
+ and the {{{usage.html}usage page}} respectively.
+
+* Examples
+
+ Several common usage examples are provided for the following tasks:
+
+ * {{{examples/dependencies.html}Dependencies task}}
+
+ * {{{examples/install-deploy.html}Install and Deploy tasks}}
+
+ * {{{examples/pom.html}Pom task}}
+
* Getting Help
If you have any questions specific to the Ant tasks, please contact the
Modified: maven/ant-tasks/branches/maven-ant-tasks-2.0.x/src/site/apt/reference.apt
URL: http://svn.apache.org/viewvc/maven/ant-tasks/branches/maven-ant-tasks-2.0.x/src/site/apt/reference.apt?rev=772397&r1=772396&r2=772397&view=diff
==============================================================================
--- maven/ant-tasks/branches/maven-ant-tasks-2.0.x/src/site/apt/reference.apt (original)
+++ maven/ant-tasks/branches/maven-ant-tasks-2.0.x/src/site/apt/reference.apt Wed May 6 18:30:13 2009
@@ -247,7 +247,7 @@
| <<<active>>> | Set to <<<true>>> or <<<false>>> to determine whether the profile should be active. Default is <<<true>>>. | No |
*------------------+--------------------------------------------------------+--------------+
-* <<<{VersionMapper}>>> <(since 2.0.7)>
+* <<<{versionMapper}>>> <(since 2.0.7)>
This is a {{{http://ant.apache.org/manual/CoreTypes/mapper.html}filename mapper}}
that removes version info from the filename when copying dependencies. It can
@@ -264,4 +264,4 @@
| <<<to>>> | If this is set to <<<flatten>>> the directory info is also removed from the filename. | No |
*------------------+--------------------------------------------------------+--------------+
- You can see a full working example in the {{{usage.html#versionsId} Usage}} page.
\ No newline at end of file
+ You can see a full working example in the {{{examples/dependencies.html} examples}}.
Modified: maven/ant-tasks/branches/maven-ant-tasks-2.0.x/src/site/apt/usage.apt
URL: http://svn.apache.org/viewvc/maven/ant-tasks/branches/maven-ant-tasks-2.0.x/src/site/apt/usage.apt?rev=772397&r1=772396&r2=772397&view=diff
==============================================================================
--- maven/ant-tasks/branches/maven-ant-tasks-2.0.x/src/site/apt/usage.apt (original)
+++ maven/ant-tasks/branches/maven-ant-tasks-2.0.x/src/site/apt/usage.apt Wed May 6 18:30:13 2009
@@ -47,98 +47,35 @@
The above example will download those 3 dependencies, and their dependencies, and so on. They will be stored in
the default local repository location, <<<$\{user.home\}/.m2/repository>>>.
- You can also use a Maven 2.0 POM to declare your dependencies, which is {{{./reference.html#pom} explained in the reference}}. This is the
- recommended practice so that you can reuse the file to deploy your own artifacts.
-
You may have noticed the <<<pathId>>> reference. This is optional, but if given will create a classpath reference
that includes the local files downloaded as dependencies. This is usually used to pass to <<<javac>>> or other tasks:
------
-<javac ...>
- <classpath refid="dependency.classpath" />
- ...
-</javac>
------
-
- Another option you can use is <<<filesetId>>>, which will give you a fileset reference that can be used to copy
- files into a particular location. For example, to populate <<<WEB-INF/lib>>> with your dependencies
- you could use the following:
-
------
-<artifact:dependencies filesetId="dependency.fileset" useScope="runtime">
- <!-- Your dependency definitions go here -->
- ...
-</artifact:dependencies>
-<copy todir="${webapp.output}/WEB-INF/lib">
- <fileset refid="dependency.fileset" />
- <!-- This mapper strips off all leading directory information -->
- <mapper type="flatten" />
-</copy>
------
-
- Note the <<<useScope>>> attribute in this call. This ensures that your web application only includes your compile
- and runtime dependencies, excluding those that are only for testing or are expected to already be provided by
- the servlet container.
-
- You can also specify a <<<scope>>> parameter on each dependency. This changes the behavior of
- transitive dependencies and is useful for building different types of classpaths. To see how it affects
- the behaviour of the dependencies, see the {{{http://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html} Dependency Mechanism}}
- documentation on the Maven 2.0 site.
+ You can also use a Maven 2.0 POM to declare your dependencies, which is {{{examples/pom.html} described in the examples}}.
+ This is the recommended practice so that you can reuse the file to deploy your own artifacts.
- Other options are:
+ For more examples of using the dependencies task, see the {{{examples/dependencies.html} examples page}}.
- * <<<sourcesFilesetId>>>, which will give you a fileset reference containing sources artifacts, <(since 2.0.6)>
+* Installing and Deploying Your Own Artifacts to a Repository
- * <<<javadocFilesetId>>>, which will give you a fileset reference containing javadoc artifacts, <(since 2.0.9)>
+ Maven allows artifacts to be shared between projects by using local and remote repository.
+ The <<<install>>> task allows an artifact to be copied to the local maven repository (typically
+ located in ~/.m2/repository).
+
+ The <<<deploy>>> task allows artifacts to be deployed to a remote maven repository where they will
+ be available to other projects.
+
+ For examples of using the install and deploy tasks, see the {{{examples/install-deploy.html} examples page}}.
- * {<<<versionsId>>>}, which can be used to drop version numbers in filenames <(since 2.0.7)>
+* Using a Maven {POM} File
- For example, to populate <<<lib>>> with your dependencies without the version in the filenames, <<<lib/src>>> with the corresponding sources
- and <<<lib/javadoc>>> with the corresponding javadocs:
+ In Maven, the Project Object Model (POM) represents a unit of work - one exists for each artifact that is built.
------
-<artifact:dependencies filesetId="dependency.fileset"
- sourcesFilesetId="sources.dependency.fileset"
- javadocFilesetId="javadoc.dependency.fileset"
- versionsId="dependency.versions">
- <!-- Your dependency definitions go here -->
- ...
-</artifact:dependencies>
-<copy todir="lib">
- <fileset refid="dependency.fileset" />
- <mapper classpathref="maven-ant-tasks.classpath"
- classname="org.apache.maven.artifact.ant.VersionMapper"
- from="${dependency.versions}" to="flatten" />
-</copy>
-<copy todir="lib/src">
- <fileset refid="sources.dependency.fileset" />
- <mapper classpathref="maven-ant-tasks.classpath"
- classname="org.apache.maven.artifact.ant.VersionMapper"
- from="${dependency.versions}" to="flatten" />
-</copy>
-<copy todir="lib/javadoc">
- <fileset refid="javadoc.dependency.fileset" />
- <mapper classpathref="maven-ant-tasks.classpath"
- classname="org.apache.maven.artifact.ant.VersionMapper"
- from="${dependency.versions}" to="flatten" />
-</copy>
------
+ A Maven 2.0 POM file is required for deploying your own artifact to a repository for use in the dependencies
+ elements of other projects.
- <<Note:>> In the above example you only need to specify
- <<<classpathref="maven-ant-tasks.classpath">>> if are using Maven Ant Tasks
- by {{{installation.html#typedef} declaring a <<<typedef>>>}}.
- It can be omitted if Maven Ant Tasks was
- {{{installation.html#lib} installed in Ant's <<<lib>>> directory}}.
-
-** Accessing dependencies using properties
-
- <(since 2.0.8)> For each dependency resolved using either inline declaration or a pom reference, the property
- <<<groupId:artifactId:type[:classifier]>>> is defined pointing to the corresponding file. For example,
- a resolved dependency on junit can be accessed in the following way:
+ It can also be reused for declaring your own dependencies, instead of specifying the inline version given earlier.
------
-<echo message="JUnit jar file downloaded to ${junit:junit:jar}"/>
------
+ For examples of creating a pom and using the <<<pom>>> task, see the {{{examples/pom.html}examples page}}.
* Declaring Repositories
@@ -174,181 +111,6 @@
<authentication username="brett" privateKey="${user.home}/.ssh/id_dsa" />
-----
-* Using a Maven {POM} File
-
- In Maven, the Project Object Model (POM) represents a unit of work - one exists for each artifact that is built.
-
- A Maven 2.0 POM file is required for deploying your own artifact to a repository for use in the dependencies
- elements of other projects.
-
- It can also be reused for declaring your own dependencies, instead of specifying the inline version given earlier.
-
- Here is the earlier example, expressed as a POM:
-
------
-<project>
- <modelVersion>4.0.0</modelVersion>
- <groupId>com.mycompany.project</groupId>
- <artifactId>project-model</artifactId>
- <version>1.0-SNAPSHOT</version>
-
- <dependencies>
- <dependency>
- <groupId>junit</groupId>
- <artifactId>junit</artifactId>
- <version>3.8.2</version>
- <scope>test</scope>
- </dependency>
-
- <dependency>
- <groupId>org.codehaus.modello</groupId>
- <artifactId>modello-core</artifactId>
- <version>1.0-alpha-2-SNAPSHOT</version>
- </dependency>
-
- <dependency>
- <groupId>javax.servlet</groupId>
- <artifactId>servlet-api</artifactId>
- <version>2.4</version>
- <scope>provided</scope>
- </dependency>
- </dependencies>
-</project>
------
-
- These elements represent:
-
- * <modelVersion> - this is the version of the POM layout in use, currently <<<4.0.0>>>.
-
- * <groupId> - the group ID represents your organisation and project name, much like a Java package name.
- This must be universally unique. This becomes the base directory in the repository as well.
-
- * <artifactId> - the artifact ID represents the current build unit. It usually equals the filename of the
- resulting file, and must be unique within the group.
-
- * <version> - the version of the artifact you are building.
-
- * <dependencies> - the artifacts that this project is dependant on.
-
- This is all that is required for most projects. However, it is also possible to use other fields available in
- Maven to describe your project, and reference them from your build script.
-
- To access a part of the POM as an Ant property, you must define it as a reference. For example, to access the version from a POM,
- you can use the following:
-
------
- <artifact:pom id="mypom" file="pom.xml" />
-
- <echo>The version is ${mypom.version}</echo>
------
-
- You can also access nested parts of the POM. For example, you can read the default value of the <<<directory>>>
- element within the <<<build>>> element using a <<<.>>> separator.
-
------
- <artifact:pom id="mypom" file="pom.xml" />
-
- <echo>The build directory is ${mypom.build.directory}</echo>
------
-
- For more information on the elements available in the POM, see the {{{http://maven.apache.org/maven-model/maven.html} descriptor reference}}.
-
-** Accessing dependencies in the POM
-
- The <<<pom>>> task can be used in combination with the <<<dependencies>>> task to declare a list of dependencies.
-
------
- <artifact:pom id="mypom" file="pom.xml" />
-
- <artifact:dependencies filesetId="mydeps" pomRefId="mypom" />
------
-
- In this example, the <<<dependencies>>> task in this example will resolve the list of dependencies in the pom
- and add them to the fileset.
-
-** Using profiles in the POM
-
- POM profiles can be activated or deactivated using the nested profile element. For example
- to activate a profile called <<my-profile>>.
-
------
- <artifact:pom id="maven.project" file="pom.xml">
- <profile id="my-profile"/>
- </artifact:pom>
------
-
- This can also be used to deactivate a POM profile that is active by default.
-
------
- <artifact:pom id="maven.project" file="pom.xml">
- <profile id="my-default-profile" active="false"/>
- </artifact:pom>
------
-
-* Installing and Deploying Your Own Artifacts to a Repository
-
- If you want to share your built artifacts between projects, you can use two other tasks: <<<install>>> for
- installing them in your local repository for access as dependencies in other scripts, and <<<deploy>>> for
- deploying them to a remote location you have set up to serve as a repository in your organisation.
-
- <<Note:>> that the installation and deployment require that you have a Maven 2.0 POM file to deploy along with it.
- These are required for the transitive dependency mechanism to work effectively, and can be quite simple to
- create.
-
- ~~ TODO: Write an introductory text explaining the example below
-
------
-...
- <artifact:pom id="maven.project" file="pom.xml" />
-
- <artifact:install file="target/maven-artifact-ant-2.0-alpha-3.jar">
- <pom refid="maven.project"/>
- </artifact:install>
-
- <artifact:deploy file="target/maven-artifact-ant-2.0-alpha-3.jar">
- <remoteRepository url="file://localhost/www/repository"/>
- <pom refid="maven.project"/>
- </artifact:deploy>
-...
------
-
- For deploying using a protocol other than local file system, you need to register a provider to make the other
- protocols available. For example:
-
------
-...
- <artifact:install-provider artifactId="wagon-ssh" version="1.0-beta-2"/>
-
- <artifact:deploy file="target/maven-artifact-ant-2.0-alpha-3.jar">
- <remoteRepository url="scp://localhost/www/repository">
- <authentication username="${repository.username}" privateKey="${user.home}/.ssh/id_dsa"/>
- </remoteRepository>
- <pom refid="maven.project"/>
- </artifact:deploy>
-...
------
-
- <<Note:>> that if you use <<<antcall>>>, the provider isn't available during the Ant call: you have to register
- it again if you need it.
-
- ~~ TODO: Explain more thoroughly when you need to register a provider
-
- Maven Ant Tasks contain <<<wagon-file>>> and <<<wagon-http-lightweight>>> providers. The other available providers are:
-
-*--------------+--------------------------+-------------------+
-| Protocol | Artifact ID | Version |
-*--------------+--------------------------+-------------------+
-| <<<http>>> | <<<wagon-http>>> | <<<1.0-beta-2>>> |
-*--------------+--------------------------+-------------------+
-| <<<scp>>> | <<<wagon-ssh>>> | <<<1.0-beta-2>>> |
-*--------------+--------------------------+-------------------+
-| <<<scpexe>>> | <<<wagon-ssh-external>>> | <<<1.0-beta-2>>> |
-*--------------+--------------------------+-------------------+
-| <<<ftp>>> | <<<wagon-ftp>>> | <<<1.0-beta-2>>> |
-*--------------+--------------------------+-------------------+
-| <<<webdav>>> | <<<wagon-webdav>>> | <<<1.0-beta-2>>> |
-*--------------+--------------------------+-------------------+
-
* The Settings File
The POM can be used to represent most of the information that the tasks have access to, including remote
@@ -411,6 +173,12 @@
* Examples
+ * {{{examples/dependencies.html} dependencies task}}
+
+ * {{{examples/install-deploy.html} install and deploy tasks }}
+
+ * {{{examples/pom.html} pom task }}
+
* Maven Ant Tasks's
{{{http://svn.apache.org/repos/asf/maven/ant-tasks/branches/maven-ant-tasks-2.0.x/sample.build.xml} sample.build.xml}}
is a sample Ant script showing most of the functionality in action (it's used as unit-tests).
Modified: maven/ant-tasks/branches/maven-ant-tasks-2.0.x/src/site/site.xml
URL: http://svn.apache.org/viewvc/maven/ant-tasks/branches/maven-ant-tasks-2.0.x/src/site/site.xml?rev=772397&r1=772396&r2=772397&view=diff
==============================================================================
--- maven/ant-tasks/branches/maven-ant-tasks-2.0.x/src/site/site.xml (original)
+++ maven/ant-tasks/branches/maven-ant-tasks-2.0.x/src/site/site.xml Wed May 6 18:30:13 2009
@@ -28,17 +28,18 @@
<item name="Release Notes" href="release-notes.html"/>
<item name="FAQ" href="faq.html"/>
</menu>
- <menu name="References">
- <item name="Task Reference" href="reference.html#Task">
- <item name="dependencies" href="reference.html#dependencies"/>
- <item name="install, deploy" href="reference.html#install"/>
- <item name="install-provider" href="reference.html#install-provider"/>
- </item>
- <item name="Type Reference" href="reference.html#Type">
- <item name="localRepository" href="reference.html#localRepository"/>
- <item name="remoteRepository" href="reference.html#remoteRepository"/>
- <item name="pom" href="reference.html#pom"/>
- </item>
+ <menu name="Examples">
+ <item name="dependencies" href="examples/dependencies.html"/>
+ <item name="install, deploy" href="examples/install-deploy.html"/>
+ <item name="pom" href="examples/pom.html"/>
+ </menu>
+ <menu name="Reference">
+ <item name="dependencies" href="reference.html#dependencies"/>
+ <item name="install, deploy" href="reference.html#install"/>
+ <item name="install-provider" href="reference.html#install-provider"/>
+ <item name="localRepository" href="reference.html#localRepository"/>
+ <item name="remoteRepository" href="reference.html#remoteRepository"/>
+ <item name="pom" href="reference.html#pom"/>
<item name="VersionMapper" href="reference.html#VersionMapper"/>
</menu>
</body>