<!--
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.
-->
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN""http://www.w3.org/TR/REC-html40/loose.dtd">
<!--NewPage-->
<HTML>
<HEAD>
<!-- Generated by javadoc on Sat Mar 08 08:22:56 GMT+10:00 2003 -->
<TITLE>
Index (Maven 1.0-beta-9 API)
</TITLE>
<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
</HEAD>
<SCRIPT>
function asd()
{
parent.document.title="Index (Maven 1.0-beta-9 API)";
}
</SCRIPT>
<BODY BGCOLOR="white" onload="asd();">

<!-- ========== START OF NAVBAR ========== -->
<A NAME="navbar_top"><!-- --></A>
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0">
<TR>
<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
<A NAME="navbar_top_firstrow"><!-- --></A>
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3">
  <TR ALIGN="center" VALIGN="top">
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Index</B></FONT>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
  </TR>
</TABLE>
</TD>
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
</EM>
</TD>
</TR>

<TR>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
&nbsp;PREV&nbsp;
&nbsp;NEXT</FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
  <A HREF="index.html" TARGET="_top"><B>FRAMES</B></A>  &nbsp;
&nbsp;<A HREF="index-all.html" TARGET="_top"><B>NO FRAMES</B></A>  &nbsp;
&nbsp;
<SCRIPT>
  <!--
  if(window==top) {
    document.writeln('<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>');
  }
  //-->
</SCRIPT>
<NOSCRIPT>
<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>
</NOSCRIPT>
</FONT></TD>
</TR>
</TABLE>
<!-- =========== END OF NAVBAR =========== -->

<A HREF="#_A_">A</A> <A HREF="#_B_">B</A> <A HREF="#_C_">C</A> <A HREF="#_D_">D</A> <A HREF="#_E_">E</A> <A HREF="#_F_">F</A> <A HREF="#_G_">G</A> <A HREF="#_H_">H</A> <A HREF="#_I_">I</A> <A HREF="#_J_">J</A> <A HREF="#_L_">L</A> <A HREF="#_M_">M</A> <A HREF="#_O_">O</A> <A HREF="#_P_">P</A> <A HREF="#_R_">R</A> <A HREF="#_S_">S</A> <A HREF="#_T_">T</A> <A HREF="#_U_">U</A> <A HREF="#_V_">V</A> <A HREF="#_W_">W</A> <A HREF="#_X_">X</A> <HR>
<A NAME="_A_"><!-- --></A><H2>
<B>A</B></H2>
<DL>
<DT><A HREF="org/apache/maven/repository/AbstractArtifact.html"><B>AbstractArtifact</B></A> - class org.apache.maven.repository.<A HREF="org/apache/maven/repository/AbstractArtifact.html">AbstractArtifact</A>.<DD>Base class from which all artifact subclasses are derived.<DT><A HREF="org/apache/maven/repository/AbstractArtifact.html#AbstractArtifact(org.apache.maven.project.Dependency)"><B>AbstractArtifact(Dependency)</B></A> -
Constructor for class org.apache.maven.repository.<A HREF="org/apache/maven/repository/AbstractArtifact.html">AbstractArtifact</A>
<DD>Default constructor.
<DT><A HREF="org/apache/maven/AbstractMavenComponent.html"><B>AbstractMavenComponent</B></A> - class org.apache.maven.<A HREF="org/apache/maven/AbstractMavenComponent.html">AbstractMavenComponent</A>.<DD>Base class from which all components in maven are derived.<DT><A HREF="org/apache/maven/AbstractMavenComponent.html#AbstractMavenComponent()"><B>AbstractMavenComponent()</B></A> -
Constructor for class org.apache.maven.<A HREF="org/apache/maven/AbstractMavenComponent.html">AbstractMavenComponent</A>
<DD>Default Constructor.
<DT><A HREF="org/apache/maven/AbstractMavenComponent.html#AbstractMavenComponent(org.apache.maven.project.Project)"><B>AbstractMavenComponent(Project)</B></A> -
Constructor for class org.apache.maven.<A HREF="org/apache/maven/AbstractMavenComponent.html">AbstractMavenComponent</A>
<DD>&nbsp;
<DT><A HREF="org/apache/maven/repository/AbstractRepositoryLayout.html"><B>AbstractRepositoryLayout</B></A> - class org.apache.maven.repository.<A HREF="org/apache/maven/repository/AbstractRepositoryLayout.html">AbstractRepositoryLayout</A>.<DD>&nbsp;<DT><A HREF="org/apache/maven/repository/AbstractRepositoryLayout.html#AbstractRepositoryLayout()"><B>AbstractRepositoryLayout()</B></A> -
Constructor for class org.apache.maven.repository.<A HREF="org/apache/maven/repository/AbstractRepositoryLayout.html">AbstractRepositoryLayout</A>
<DD>&nbsp;
<DT><A HREF="org/apache/maven/project/Project.html#addContributor(org.apache.maven.project.Contributor)"><B>addContributor(Contributor)</B></A> -
Method in class org.apache.maven.project.<A HREF="org/apache/maven/project/Project.html">Project</A>
<DD>Add a contributor to this project.
<DT><A HREF="org/apache/maven/project/Project.html#addDependency(org.apache.maven.project.Dependency)"><B>addDependency(Dependency)</B></A> -
Method in class org.apache.maven.project.<A HREF="org/apache/maven/project/Project.html">Project</A>
<DD>Add a unique dependency for this project.
<DT><A HREF="org/apache/maven/project/Project.html#addDeveloper(org.apache.maven.project.Developer)"><B>addDeveloper(Developer)</B></A> -
Method in class org.apache.maven.project.<A HREF="org/apache/maven/project/Project.html">Project</A>
<DD>Add a developer to this project.
<DT><A HREF="org/apache/maven/project/Resource.html#addExclude(java.lang.String)"><B>addExclude(String)</B></A> -
Method in class org.apache.maven.project.<A HREF="org/apache/maven/project/Resource.html">Resource</A>
<DD>Add an exclude pattern.
<DT><A HREF="org/apache/maven/jelly/tags/maven/ConcatTag.html#addFile(java.io.File)"><B>addFile(File)</B></A> -
Method in class org.apache.maven.jelly.tags.maven.<A HREF="org/apache/maven/jelly/tags/maven/ConcatTag.html">ConcatTag</A>
<DD>Add a file to the list of files of be concatenated.
<DT><A HREF="org/apache/maven/MavenSession.html#addGoalName(java.lang.String)"><B>addGoalName(String)</B></A> -
Method in class org.apache.maven.<A HREF="org/apache/maven/MavenSession.html">MavenSession</A>
<DD>Add a single goal to the list of goals to attain.
<DT><A HREF="org/apache/maven/MavenSession.html#addGoalNames(java.util.List)"><B>addGoalNames(List)</B></A> -
Method in class org.apache.maven.<A HREF="org/apache/maven/MavenSession.html">MavenSession</A>
<DD>Add a list of goals to attain.
<DT><A HREF="org/apache/maven/project/Resource.html#addInclude(java.lang.String)"><B>addInclude(String)</B></A> -
Method in class org.apache.maven.project.<A HREF="org/apache/maven/project/Resource.html">Resource</A>
<DD>Add an include pattern.
<DT><A HREF="org/apache/maven/project/Project.html#addLicense(org.apache.maven.project.License)"><B>addLicense(License)</B></A> -
Method in class org.apache.maven.project.<A HREF="org/apache/maven/project/Project.html">Project</A>
<DD>Add a license to this project.
<DT><A HREF="org/apache/maven/project/Project.html#addMailingList(org.apache.maven.project.MailingList)"><B>addMailingList(MailingList)</B></A> -
Method in class org.apache.maven.project.<A HREF="org/apache/maven/project/Project.html">Project</A>
<DD>Add a mailing list for this project.
<DT><A HREF="org/apache/maven/jelly/MavenJellyContext.html#addMavenRemoteRepo(java.lang.String)"><B>addMavenRemoteRepo(String)</B></A> -
Method in class org.apache.maven.jelly.<A HREF="org/apache/maven/jelly/MavenJellyContext.html">MavenJellyContext</A>
<DD>Add a remote repository to the list of remote repositories.
<DT><A HREF="org/apache/maven/project/Project.html#addPackageGroup(org.apache.maven.project.PackageGroup)"><B>addPackageGroup(PackageGroup)</B></A> -
Method in class org.apache.maven.project.<A HREF="org/apache/maven/project/Project.html">Project</A>
<DD>Adds a new PackageGroup to this project
<DT><A HREF="org/apache/maven/project/Project.html#addParentDependencies(java.util.List)"><B>addParentDependencies(List)</B></A> -
Method in class org.apache.maven.project.<A HREF="org/apache/maven/project/Project.html">Project</A>
<DD>&nbsp;
<DT><A HREF="org/apache/maven/jelly/tags/maven/AddPathTag.html"><B>AddPathTag</B></A> - class org.apache.maven.jelly.tags.maven.<A HREF="org/apache/maven/jelly/tags/maven/AddPathTag.html">AddPathTag</A>.<DD>This class takes a given path using an <code>id</code> and appends another
 path (using <code>refid</code>) to it.<DT><A HREF="org/apache/maven/jelly/tags/maven/AddPathTag.html#AddPathTag()"><B>AddPathTag()</B></A> -
Constructor for class org.apache.maven.jelly.tags.maven.<A HREF="org/apache/maven/jelly/tags/maven/AddPathTag.html">AddPathTag</A>
<DD>&nbsp;
<DT><A HREF="org/apache/maven/project/Project.html#addPluginContext(java.lang.String, org.apache.maven.jelly.MavenJellyContext)"><B>addPluginContext(String, MavenJellyContext)</B></A> -
Method in class org.apache.maven.project.<A HREF="org/apache/maven/project/Project.html">Project</A>
<DD>Add a plugin context to the list of project's plugin contexts.
<DT><A HREF="org/apache/maven/project/BaseObject.html#addProperty(java.lang.String)"><B>addProperty(String)</B></A> -
Method in class org.apache.maven.project.<A HREF="org/apache/maven/project/BaseObject.html">BaseObject</A>
<DD>Add a meta property to this object.
<DT><A HREF="org/apache/maven/project/Project.html#addReport(java.lang.String)"><B>addReport(String)</B></A> -
Method in class org.apache.maven.project.<A HREF="org/apache/maven/project/Project.html">Project</A>
<DD>Add a unique report for this project.
<DT><A HREF="org/apache/maven/project/UnitTest.html#addResource(org.apache.maven.project.Resource)"><B>addResource(Resource)</B></A> -
Method in class org.apache.maven.project.<A HREF="org/apache/maven/project/UnitTest.html">UnitTest</A>
<DD>Add a test resource.
<DT><A HREF="org/apache/maven/project/Build.html#addResource(org.apache.maven.project.Resource)"><B>addResource(Resource)</B></A> -
Method in class org.apache.maven.project.<A HREF="org/apache/maven/project/Build.html">Build</A>
<DD>Add a test resource.
<DT><A HREF="org/apache/maven/project/Contributor.html#addRole(java.lang.String)"><B>addRole(String)</B></A> -
Method in class org.apache.maven.project.<A HREF="org/apache/maven/project/Contributor.html">Contributor</A>
<DD>Adds a role attribute to the Contributor object.
<DT><A HREF="org/apache/maven/project/Build.html#addSourceModification(org.apache.maven.project.SourceModification)"><B>addSourceModification(SourceModification)</B></A> -
Method in class org.apache.maven.project.<A HREF="org/apache/maven/project/Build.html">Build</A>
<DD>Add source modification.
<DT><A HREF="org/apache/maven/MavenTool.html#addToCount(java.lang.Object)"><B>addToCount(Object)</B></A> -
Method in class org.apache.maven.<A HREF="org/apache/maven/MavenTool.html">MavenTool</A>
<DD>Add an object to the list of counted items.
<DT><A HREF="org/apache/maven/project/Project.html#addVersion(org.apache.maven.project.Version)"><B>addVersion(Version)</B></A> -
Method in class org.apache.maven.project.<A HREF="org/apache/maven/project/Project.html">Project</A>
<DD>Add a distribution to this project.
<DT><A HREF="org/apache/maven/jelly/tags/maven/ReactorTag.html#afterLaunchGoals(org.apache.maven.project.Project)"><B>afterLaunchGoals(Project)</B></A> -
Method in class org.apache.maven.jelly.tags.maven.<A HREF="org/apache/maven/jelly/tags/maven/ReactorTag.html">ReactorTag</A>
<DD>This method is running after launching project goals.
<DT><A HREF="org/apache/maven/jelly/tags/maven/ReactorTag.html#afterProject(org.apache.maven.project.Project)"><B>afterProject(Project)</B></A> -
Method in class org.apache.maven.jelly.tags.maven.<A HREF="org/apache/maven/jelly/tags/maven/ReactorTag.html">ReactorTag</A>
<DD>This method is running after launching a project.
<DT><A HREF="org/apache/maven/AntProjectBuilder.html"><B>AntProjectBuilder</B></A> - class org.apache.maven.<A HREF="org/apache/maven/AntProjectBuilder.html">AntProjectBuilder</A>.<DD>&nbsp;<DT><A HREF="org/apache/maven/AntProjectBuilder.html#AntProjectBuilder()"><B>AntProjectBuilder()</B></A> -
Constructor for class org.apache.maven.<A HREF="org/apache/maven/AntProjectBuilder.html">AntProjectBuilder</A>
<DD>&nbsp;
<DT><A HREF="org/apache/maven/cli/App.html"><B>App</B></A> - class org.apache.maven.cli.<A HREF="org/apache/maven/cli/App.html">App</A>.<DD>The CLI wrapper for controlling MavenSession processes which are
 encapsulated in the MavenSession bean.<DT><A HREF="org/apache/maven/MavenSession.html#APP_VERSION"><B>APP_VERSION</B></A> -
Static variable in class org.apache.maven.<A HREF="org/apache/maven/MavenSession.html">MavenSession</A>
<DD>The current MavenSession version id
<DT><A HREF="org/apache/maven/cli/App.html#App()"><B>App()</B></A> -
Constructor for class org.apache.maven.cli.<A HREF="org/apache/maven/cli/App.html">App</A>
<DD>Constructor.
<DT><A HREF="org/apache/maven/repository/Artifact.html"><B>Artifact</B></A> - interface org.apache.maven.repository.<A HREF="org/apache/maven/repository/Artifact.html">Artifact</A>.<DD>The interface defining an artifact (which probably lives in the
 repository).<DT><A HREF="org/apache/maven/ArtifactListBuilder.html"><B>ArtifactListBuilder</B></A> - class org.apache.maven.<A HREF="org/apache/maven/ArtifactListBuilder.html">ArtifactListBuilder</A>.<DD>&nbsp;<DT><A HREF="org/apache/maven/ArtifactListBuilder.html#ArtifactListBuilder()"><B>ArtifactListBuilder()</B></A> -
Constructor for class org.apache.maven.<A HREF="org/apache/maven/ArtifactListBuilder.html">ArtifactListBuilder</A>
<DD>&nbsp;
<DT><A HREF="org/apache/maven/MavenSession.html#attainGoals()"><B>attainGoals()</B></A> -
Method in class org.apache.maven.<A HREF="org/apache/maven/MavenSession.html">MavenSession</A>
<DD>&nbsp;
<DT><A HREF="org/apache/maven/MavenSession.html#attainGoals(org.apache.maven.project.Project)"><B>attainGoals(Project)</B></A> -
Method in class org.apache.maven.<A HREF="org/apache/maven/MavenSession.html">MavenSession</A>
<DD>&nbsp;
<DT><A HREF="org/apache/maven/plugin/PluginManager.html#attainGoals(org.apache.maven.project.Project)"><B>attainGoals(Project)</B></A> -
Method in class org.apache.maven.plugin.<A HREF="org/apache/maven/plugin/PluginManager.html">PluginManager</A>
<DD>Attain the goals.
<DT><A HREF="org/apache/maven/plugin/DefaultPluginManager.html#attainGoals(org.apache.maven.project.Project)"><B>attainGoals(Project)</B></A> -
Method in class org.apache.maven.plugin.<A HREF="org/apache/maven/plugin/DefaultPluginManager.html">DefaultPluginManager</A>
<DD>Attain the goals.
</DL>
<HR>
<A NAME="_B_"><!-- --></A><H2>
<B>B</B></H2>
<DL>
<DT><A HREF="org/apache/maven/project/BaseObject.html"><B>BaseObject</B></A> - class org.apache.maven.project.<A HREF="org/apache/maven/project/BaseObject.html">BaseObject</A>.<DD>&nbsp;<DT><A HREF="org/apache/maven/project/BaseObject.html#BaseObject()"><B>BaseObject()</B></A> -
Constructor for class org.apache.maven.project.<A HREF="org/apache/maven/project/BaseObject.html">BaseObject</A>
<DD>&nbsp;
<DT><A HREF="org/apache/maven/jelly/tags/BaseTagLibrary.html"><B>BaseTagLibrary</B></A> - class org.apache.maven.jelly.tags.<A HREF="org/apache/maven/jelly/tags/BaseTagLibrary.html">BaseTagLibrary</A>.<DD>MavenSession tag library for use in Jelly scripts.<DT><A HREF="org/apache/maven/jelly/tags/BaseTagLibrary.html#BaseTagLibrary()"><B>BaseTagLibrary()</B></A> -
Constructor for class org.apache.maven.jelly.tags.<A HREF="org/apache/maven/jelly/tags/BaseTagLibrary.html">BaseTagLibrary</A>
<DD>Create an instance of the <CODE>MavenTagLibrary</CODE>, registering related
 tag libraries
<DT><A HREF="org/apache/maven/jelly/tags/BaseTagSupport.html"><B>BaseTagSupport</B></A> - class org.apache.maven.jelly.tags.<A HREF="org/apache/maven/jelly/tags/BaseTagSupport.html">BaseTagSupport</A>.<DD>&nbsp;<DT><A HREF="org/apache/maven/jelly/tags/BaseTagSupport.html#BaseTagSupport()"><B>BaseTagSupport()</B></A> -
Constructor for class org.apache.maven.jelly.tags.<A HREF="org/apache/maven/jelly/tags/BaseTagSupport.html">BaseTagSupport</A>
<DD>&nbsp;
<DT><A HREF="org/apache/maven/jelly/tags/maven/ReactorTag.html#beforeLaunchGoals(org.apache.maven.project.Project)"><B>beforeLaunchGoals(Project)</B></A> -
Method in class org.apache.maven.jelly.tags.maven.<A HREF="org/apache/maven/jelly/tags/maven/ReactorTag.html">ReactorTag</A>
<DD>This method is running before launching project goals.
<DT><A HREF="org/apache/maven/jelly/tags/maven/ReactorTag.html#beforeProject(org.apache.maven.project.Project)"><B>beforeProject(Project)</B></A> -
Method in class org.apache.maven.jelly.tags.maven.<A HREF="org/apache/maven/jelly/tags/maven/ReactorTag.html">ReactorTag</A>
<DD>This method is running before launching a project.
<DT><A HREF="org/apache/maven/project/Build.html"><B>Build</B></A> - class org.apache.maven.project.<A HREF="org/apache/maven/project/Build.html">Build</A>.<DD>&nbsp;<DT><A HREF="org/apache/maven/MavenSession.html#BUILD_END_GOAL"><B>BUILD_END_GOAL</B></A> -
Static variable in class org.apache.maven.<A HREF="org/apache/maven/MavenSession.html">MavenSession</A>
<DD>Tag for build end goal.
<DT><A HREF="org/apache/maven/MavenConstants.html#BUILD_FILE"><B>BUILD_FILE</B></A> -
Static variable in class org.apache.maven.<A HREF="org/apache/maven/MavenConstants.html">MavenConstants</A>
<DD>Project build file tag.
<DT><A HREF="org/apache/maven/MavenConstants.html#BUILD_FILE_NAME"><B>BUILD_FILE_NAME</B></A> -
Static variable in class org.apache.maven.<A HREF="org/apache/maven/MavenConstants.html">MavenConstants</A>
<DD>Project build file name.
<DT><A HREF="org/apache/maven/MavenSession.html#BUILD_START_GOAL"><B>BUILD_START_GOAL</B></A> -
Static variable in class org.apache.maven.<A HREF="org/apache/maven/MavenSession.html">MavenSession</A>
<DD>Tag for build start goal.
<DT><A HREF="org/apache/maven/project/Build.html#Build()"><B>Build()</B></A> -
Constructor for class org.apache.maven.project.<A HREF="org/apache/maven/project/Build.html">Build</A>
<DD>Constructor for the Build object
<DT><A HREF="org/apache/maven/DependencyClasspathBuilder.html#build(org.apache.maven.project.Project)"><B>build(Project)</B></A> -
Static method in class org.apache.maven.<A HREF="org/apache/maven/DependencyClasspathBuilder.html">DependencyClasspathBuilder</A>
<DD>Create the dependency classpath.
<DT><A HREF="org/apache/maven/ArtifactListBuilder.html#build(org.apache.maven.project.Project)"><B>build(Project)</B></A> -
Static method in class org.apache.maven.<A HREF="org/apache/maven/ArtifactListBuilder.html">ArtifactListBuilder</A>
<DD>Create the list of artifacts for a project based on the stated dependencies
 taking into account any user specified overrides.
<DT><A HREF="org/apache/maven/AntProjectBuilder.html#build(org.apache.maven.project.Project)"><B>build(Project)</B></A> -
Static method in class org.apache.maven.<A HREF="org/apache/maven/AntProjectBuilder.html">AntProjectBuilder</A>
<DD>Initialize Ant.
<DT><A HREF="org/apache/maven/project/Project.html#buildArtifactList()"><B>buildArtifactList()</B></A> -
Method in class org.apache.maven.project.<A HREF="org/apache/maven/project/Project.html">Project</A>
<DD>Build the artifact list.
<DT><A HREF="org/apache/maven/project/Project.html#buildDependencyClasspath()"><B>buildDependencyClasspath()</B></A> -
Method in class org.apache.maven.project.<A HREF="org/apache/maven/project/Project.html">Project</A>
<DD>Build the dependency classpath.
<DT><A HREF="org/apache/maven/jelly/JellyBuildListener.html#buildFinished(org.apache.tools.ant.BuildEvent)"><B>buildFinished(BuildEvent)</B></A> -
Method in class org.apache.maven.jelly.<A HREF="org/apache/maven/jelly/JellyBuildListener.html">JellyBuildListener</A>
<DD>&nbsp;
<DT><A HREF="org/apache/maven/jelly/tags/maven/WerkzDependencyResolver.html#buildGraph()"><B>buildGraph()</B></A> -
Method in class org.apache.maven.jelly.tags.maven.<A HREF="org/apache/maven/jelly/tags/maven/WerkzDependencyResolver.html">WerkzDependencyResolver</A>
<DD>Builds the projects / dependencies into an internal acyclic directed graph
<DT><A HREF="org/apache/maven/jelly/JellyBuildListener.html#buildStarted(org.apache.tools.ant.BuildEvent)"><B>buildStarted(BuildEvent)</B></A> -
Method in class org.apache.maven.jelly.<A HREF="org/apache/maven/jelly/JellyBuildListener.html">JellyBuildListener</A>
<DD>&nbsp;
</DL>
<HR>
<A NAME="_C_"><!-- --></A><H2>
<B>C</B></H2>
<DL>
<DT><A HREF="org/apache/maven/plugin/PluginCacheManager.html#CALLBACKS_CACHE"><B>CALLBACKS_CACHE</B></A> -
Static variable in class org.apache.maven.plugin.<A HREF="org/apache/maven/plugin/PluginCacheManager.html">PluginCacheManager</A>
<DD>&nbsp;
<DT><A HREF="org/apache/maven/util/CaseInsensitiveGlobPatternMapper.html"><B>CaseInsensitiveGlobPatternMapper</B></A> - class org.apache.maven.util.<A HREF="org/apache/maven/util/CaseInsensitiveGlobPatternMapper.html">CaseInsensitiveGlobPatternMapper</A>.<DD>Implementation of FileNameMapper that does simple case insensitive
 wildcard pattern replacements.<DT><A HREF="org/apache/maven/util/CaseInsensitiveGlobPatternMapper.html#CaseInsensitiveGlobPatternMapper()"><B>CaseInsensitiveGlobPatternMapper()</B></A> -
Constructor for class org.apache.maven.util.<A HREF="org/apache/maven/util/CaseInsensitiveGlobPatternMapper.html">CaseInsensitiveGlobPatternMapper</A>
<DD>&nbsp;
<DT><A HREF="org/apache/maven/verifier/ChecksumVerificationException.html"><B>ChecksumVerificationException</B></A> - exception org.apache.maven.verifier.<A HREF="org/apache/maven/verifier/ChecksumVerificationException.html">ChecksumVerificationException</A>.<DD>Specialized artifact corruption exception.<DT><A HREF="org/apache/maven/verifier/ChecksumVerificationException.html#ChecksumVerificationException(java.lang.String)"><B>ChecksumVerificationException(String)</B></A> -
Constructor for class org.apache.maven.verifier.<A HREF="org/apache/maven/verifier/ChecksumVerificationException.html">ChecksumVerificationException</A>
<DD>Constructs an ChecksumVerificationException with the specified detail message.
<DT><A HREF="org/apache/maven/jelly/tags/maven/WerkzDependencyResolver.html#clear()"><B>clear()</B></A> -
Method in class org.apache.maven.jelly.tags.maven.<A HREF="org/apache/maven/jelly/tags/maven/WerkzDependencyResolver.html">WerkzDependencyResolver</A>
<DD>&nbsp;
<DT><A HREF="org/apache/maven/jelly/tags/maven/GraphDependencyResolver.html#clear()"><B>clear()</B></A> -
Method in class org.apache.maven.jelly.tags.maven.<A HREF="org/apache/maven/jelly/tags/maven/GraphDependencyResolver.html">GraphDependencyResolver</A>
<DD>&nbsp;
<DT><A HREF="org/apache/maven/jelly/tags/maven/DependencyResolverInterface.html#clear()"><B>clear()</B></A> -
Method in interface org.apache.maven.jelly.tags.maven.<A HREF="org/apache/maven/jelly/tags/maven/DependencyResolverInterface.html">DependencyResolverInterface</A>
<DD>Clear the project list and set the graph built flag to false.
<DT><A HREF="org/apache/maven/jelly/tags/maven/DependencyResolver.html#clear()"><B>clear()</B></A> -
Method in class org.apache.maven.jelly.tags.maven.<A HREF="org/apache/maven/jelly/tags/maven/DependencyResolver.html">DependencyResolver</A>
<DD>&nbsp;
<DT><A HREF="org/apache/maven/MavenSession.html#clearGoalNames()"><B>clearGoalNames()</B></A> -
Method in class org.apache.maven.<A HREF="org/apache/maven/MavenSession.html">MavenSession</A>
<DD>Clear the goal list.
<DT><A HREF="org/apache/maven/cli/CLIManager.html"><B>CLIManager</B></A> - class org.apache.maven.cli.<A HREF="org/apache/maven/cli/CLIManager.html">CLIManager</A>.<DD>Utility for managing and parsing MavenSession's command-line.<DT><A HREF="org/apache/maven/cli/CLIManager.html#CLIManager()"><B>CLIManager()</B></A> -
Constructor for class org.apache.maven.cli.<A HREF="org/apache/maven/cli/CLIManager.html">CLIManager</A>
<DD>&nbsp;
<DT><A HREF="org/apache/maven/util/StringInputStream.html#close()"><B>close()</B></A> -
Method in class org.apache.maven.util.<A HREF="org/apache/maven/util/StringInputStream.html">StringInputStream</A>
<DD>Closes the Stringreader.
<DT><A HREF="org/apache/maven/jelly/JellyUtils.html#compileScript(java.io.File, org.apache.commons.jelly.JellyContext)"><B>compileScript(File, JellyContext)</B></A> -
Static method in class org.apache.maven.jelly.<A HREF="org/apache/maven/jelly/JellyUtils.html">JellyUtils</A>
<DD>Compile a jelly script.
<DT><A HREF="org/apache/maven/jelly/JellyUtils.html#compileScript(java.io.InputStream, org.apache.commons.jelly.JellyContext)"><B>compileScript(InputStream, JellyContext)</B></A> -
Static method in class org.apache.maven.jelly.<A HREF="org/apache/maven/jelly/JellyUtils.html">JellyUtils</A>
<DD>Compile a jelly script.
<DT><A HREF="org/apache/maven/jelly/JellyUtils.html#compileScript(java.io.InputStream, org.apache.commons.jelly.JellyContext, java.lang.String)"><B>compileScript(InputStream, JellyContext, String)</B></A> -
Static method in class org.apache.maven.jelly.<A HREF="org/apache/maven/jelly/JellyUtils.html">JellyUtils</A>
<DD>Compile a jelly script.
<DT><A HREF="org/apache/maven/jelly/tags/maven/ConcatTag.html"><B>ConcatTag</B></A> - class org.apache.maven.jelly.tags.maven.<A HREF="org/apache/maven/jelly/tags/maven/ConcatTag.html">ConcatTag</A>.<DD>Concat a set of files together into a single file.<DT><A HREF="org/apache/maven/jelly/tags/maven/ConcatTag.html#ConcatTag()"><B>ConcatTag()</B></A> -
Constructor for class org.apache.maven.jelly.tags.maven.<A HREF="org/apache/maven/jelly/tags/maven/ConcatTag.html">ConcatTag</A>
<DD>&nbsp;
<DT><A HREF="org/apache/maven/project/Contributor.html"><B>Contributor</B></A> - class org.apache.maven.project.<A HREF="org/apache/maven/project/Contributor.html">Contributor</A>.<DD>A Contributor to a project is an individual that has contributed in some way
 to the project, but is not a Contributor.<DT><A HREF="org/apache/maven/project/Contributor.html#Contributor()"><B>Contributor()</B></A> -
Constructor for class org.apache.maven.project.<A HREF="org/apache/maven/project/Contributor.html">Contributor</A>
<DD>Constructor for the Contributor object
<DT><A HREF="org/apache/maven/repository/DefaultArtifactFactory.html#createArtifact(org.apache.maven.project.Dependency)"><B>createArtifact(Dependency)</B></A> -
Static method in class org.apache.maven.repository.<A HREF="org/apache/maven/repository/DefaultArtifactFactory.html">DefaultArtifactFactory</A>
<DD>Return an appropriate Artifact implementation based on the dependency
 type.
<DT><A HREF="org/apache/maven/MavenUtils.html#createBeanReader(java.lang.Class)"><B>createBeanReader(Class)</B></A> -
Static method in class org.apache.maven.<A HREF="org/apache/maven/MavenUtils.html">MavenUtils</A>
<DD>Creates a new instance of BeanReader
<DT><A HREF="org/apache/maven/jelly/MavenJellyContext.html#createChildContext()"><B>createChildContext()</B></A> -
Method in class org.apache.maven.jelly.<A HREF="org/apache/maven/jelly/MavenJellyContext.html">MavenJellyContext</A>
<DD>&nbsp;
<DT><A HREF="org/apache/maven/MavenUtils.html#createContext(java.io.File)"><B>createContext(File)</B></A> -
Static method in class org.apache.maven.<A HREF="org/apache/maven/MavenUtils.html">MavenUtils</A>
<DD>Create a jelly context given a descriptor directory.
<DT><A HREF="org/apache/maven/MavenUtils.html#createContext(java.io.File, org.apache.maven.jelly.MavenJellyContext)"><B>createContext(File, MavenJellyContext)</B></A> -
Static method in class org.apache.maven.<A HREF="org/apache/maven/MavenUtils.html">MavenUtils</A>
<DD>Create a jelly context given a descriptor directory and parent
 jelly context.
<DT><A HREF="org/apache/maven/project/Project.html#createDocument()"><B>createDocument()</B></A> -
Method in class org.apache.maven.project.<A HREF="org/apache/maven/project/Project.html">Project</A>
<DD>Create a dom4j document from the POM.
<DT><A HREF="org/apache/maven/jelly/MavenExpressionFactory.html#createExpression(java.lang.String)"><B>createExpression(String)</B></A> -
Method in class org.apache.maven.jelly.<A HREF="org/apache/maven/jelly/MavenExpressionFactory.html">MavenExpressionFactory</A>
<DD>&nbsp;
<DT><A HREF="org/apache/maven/jelly/tags/jeez/MavenJeezTagLibrary.html#createTagScript(java.lang.String, org.xml.sax.Attributes)"><B>createTagScript(String, Attributes)</B></A> -
Method in class org.apache.maven.jelly.tags.jeez.<A HREF="org/apache/maven/jelly/tags/jeez/MavenJeezTagLibrary.html">MavenJeezTagLibrary</A>
<DD>Create a <code>TagScript</code> based upon an element's
  name and attributes.
<DT><A HREF="org/apache/maven/jelly/tags/jeez/JeezTagLibrary.html#createTagScript(java.lang.String, org.xml.sax.Attributes)"><B>createTagScript(String, Attributes)</B></A> -
Method in class org.apache.maven.jelly.tags.jeez.<A HREF="org/apache/maven/jelly/tags/jeez/JeezTagLibrary.html">JeezTagLibrary</A>
<DD>&nbsp;
<DT><A HREF="org/apache/maven/MavenUtils.html#createXMLIntrospector()"><B>createXMLIntrospector()</B></A> -
Static method in class org.apache.maven.<A HREF="org/apache/maven/MavenUtils.html">MavenUtils</A>
<DD>Create the type of XMLIntrospector that is used to read all MavenSession style
 XML files.
</DL>
<HR>
<A NAME="_D_"><!-- --></A><H2>
<B>D</B></H2>
<DL>
<DT><A HREF="org/apache/maven/MavenConstants.html#DEBUG_ON"><B>DEBUG_ON</B></A> -
Static variable in class org.apache.maven.<A HREF="org/apache/maven/MavenConstants.html">MavenConstants</A>
<DD>MavenSession debug flag tag.
<DT><A HREF="org/apache/maven/jelly/JellyUtils.html#decomposeExpression(java.lang.String, org.apache.commons.jelly.expression.ExpressionFactory, org.apache.commons.jelly.JellyContext)"><B>decomposeExpression(String, ExpressionFactory, JellyContext)</B></A> -
Static method in class org.apache.maven.jelly.<A HREF="org/apache/maven/jelly/JellyUtils.html">JellyUtils</A>
<DD>Recursively evaluate a string representation of a jelly expression.
<DT><A HREF="org/apache/maven/repository/DefaultArtifactFactory.html"><B>DefaultArtifactFactory</B></A> - class org.apache.maven.repository.<A HREF="org/apache/maven/repository/DefaultArtifactFactory.html">DefaultArtifactFactory</A>.<DD>Simple factory for creating Artifact implementations based on a dependency
 type.<DT><A HREF="org/apache/maven/repository/DefaultArtifactFactory.html#DefaultArtifactFactory()"><B>DefaultArtifactFactory()</B></A> -
Constructor for class org.apache.maven.repository.<A HREF="org/apache/maven/repository/DefaultArtifactFactory.html">DefaultArtifactFactory</A>
<DD>&nbsp;
<DT><A HREF="org/apache/maven/plugin/DefaultPluginCacheManager.html"><B>DefaultPluginCacheManager</B></A> - class org.apache.maven.plugin.<A HREF="org/apache/maven/plugin/DefaultPluginCacheManager.html">DefaultPluginCacheManager</A>.<DD>This is the process that we use:

 - Start with goal X.<DT><A HREF="org/apache/maven/plugin/DefaultPluginCacheManager.html#DefaultPluginCacheManager()"><B>DefaultPluginCacheManager()</B></A> -
Constructor for class org.apache.maven.plugin.<A HREF="org/apache/maven/plugin/DefaultPluginCacheManager.html">DefaultPluginCacheManager</A>
<DD>Default constructor.
<DT><A HREF="org/apache/maven/plugin/DefaultPluginManager.html"><B>DefaultPluginManager</B></A> - class org.apache.maven.plugin.<A HREF="org/apache/maven/plugin/DefaultPluginManager.html">DefaultPluginManager</A>.<DD>This is the process that we use:

 - Start with goal X.<DT><A HREF="org/apache/maven/plugin/DefaultPluginManager.html#DefaultPluginManager(org.apache.maven.MavenSession)"><B>DefaultPluginManager(MavenSession)</B></A> -
Constructor for class org.apache.maven.plugin.<A HREF="org/apache/maven/plugin/DefaultPluginManager.html">DefaultPluginManager</A>
<DD>Default constructor.
<DT><A HREF="org/apache/maven/repository/DefaultRepositoryLayout.html"><B>DefaultRepositoryLayout</B></A> - class org.apache.maven.repository.<A HREF="org/apache/maven/repository/DefaultRepositoryLayout.html">DefaultRepositoryLayout</A>.<DD>The standard <A HREF="org/apache/maven/repository/RepositoryLayout.html"><CODE>RepositoryLayout</CODE></A>
 implementation.<DT><A HREF="org/apache/maven/repository/DefaultRepositoryLayout.html#DefaultRepositoryLayout()"><B>DefaultRepositoryLayout()</B></A> -
Constructor for class org.apache.maven.repository.<A HREF="org/apache/maven/repository/DefaultRepositoryLayout.html">DefaultRepositoryLayout</A>
<DD>&nbsp;
<DT><A HREF="org/apache/maven/project/Dependency.html"><B>Dependency</B></A> - class org.apache.maven.project.<A HREF="org/apache/maven/project/Dependency.html">Dependency</A>.<DD>&nbsp;<DT><A HREF="org/apache/maven/MavenConstants.html#DEPENDENCY_CLASSPATH"><B>DEPENDENCY_CLASSPATH</B></A> -
Static variable in class org.apache.maven.<A HREF="org/apache/maven/MavenConstants.html">MavenConstants</A>
<DD>Dependency classpath tag.
<DT><A HREF="org/apache/maven/project/Dependency.html#Dependency()"><B>Dependency()</B></A> -
Constructor for class org.apache.maven.project.<A HREF="org/apache/maven/project/Dependency.html">Dependency</A>
<DD>Default constructor
<DT><A HREF="org/apache/maven/DependencyClasspathBuilder.html"><B>DependencyClasspathBuilder</B></A> - class org.apache.maven.<A HREF="org/apache/maven/DependencyClasspathBuilder.html">DependencyClasspathBuilder</A>.<DD>Take a valid MavenJellyContext which contains references to the POM, ant
 project, and all defined properties and create the dependency classpath based
 on dependencies listed in the POM.<DT><A HREF="org/apache/maven/DependencyClasspathBuilder.html#DependencyClasspathBuilder()"><B>DependencyClasspathBuilder()</B></A> -
Constructor for class org.apache.maven.<A HREF="org/apache/maven/DependencyClasspathBuilder.html">DependencyClasspathBuilder</A>
<DD>&nbsp;
<DT><A HREF="org/apache/maven/jelly/tags/maven/DependencyResolver.html"><B>DependencyResolver</B></A> - class org.apache.maven.jelly.tags.maven.<A HREF="org/apache/maven/jelly/tags/maven/DependencyResolver.html">DependencyResolver</A>.<DD>&nbsp;<DT><A HREF="org/apache/maven/jelly/tags/maven/DependencyResolver.html#DependencyResolver()"><B>DependencyResolver()</B></A> -
Constructor for class org.apache.maven.jelly.tags.maven.<A HREF="org/apache/maven/jelly/tags/maven/DependencyResolver.html">DependencyResolver</A>
<DD>Creates the dependency resolver.
<DT><A HREF="org/apache/maven/jelly/tags/maven/DependencyResolver.html#DependencyResolver(org.apache.maven.jelly.tags.maven.DependencyResolverInterface)"><B>DependencyResolver(DependencyResolverInterface)</B></A> -
Constructor for class org.apache.maven.jelly.tags.maven.<A HREF="org/apache/maven/jelly/tags/maven/DependencyResolver.html">DependencyResolver</A>
<DD>Creates the dependency resolver with a specific implementation
<DT><A HREF="org/apache/maven/jelly/tags/maven/DependencyResolverInterface.html"><B>DependencyResolverInterface</B></A> - interface org.apache.maven.jelly.tags.maven.<A HREF="org/apache/maven/jelly/tags/maven/DependencyResolverInterface.html">DependencyResolverInterface</A>.<DD>&nbsp;<DT><A HREF="org/apache/maven/verifier/DependencyVerifier.html"><B>DependencyVerifier</B></A> - class org.apache.maven.verifier.<A HREF="org/apache/maven/verifier/DependencyVerifier.html">DependencyVerifier</A>.<DD>Make sure that everything that is required for the project to build
 successfully is present.<DT><A HREF="org/apache/maven/verifier/DependencyVerifier.html#DependencyVerifier(org.apache.maven.project.Project)"><B>DependencyVerifier(Project)</B></A> -
Constructor for class org.apache.maven.verifier.<A HREF="org/apache/maven/verifier/DependencyVerifier.html">DependencyVerifier</A>
<DD>Default ctor.
<DT><A HREF="org/apache/maven/MavenConstants.html#DESCRIPTOR_DIRECTORY"><B>DESCRIPTOR_DIRECTORY</B></A> -
Static variable in class org.apache.maven.<A HREF="org/apache/maven/MavenConstants.html">MavenConstants</A>
<DD>Descriptor directory tag.
<DT><A HREF="org/apache/maven/MavenConstants.html#DESCRIPTOR_FILE"><B>DESCRIPTOR_FILE</B></A> -
Static variable in class org.apache.maven.<A HREF="org/apache/maven/MavenConstants.html">MavenConstants</A>
<DD>Project descriptor file tag.
<DT><A HREF="org/apache/maven/project/Developer.html"><B>Developer</B></A> - class org.apache.maven.project.<A HREF="org/apache/maven/project/Developer.html">Developer</A>.<DD>A Developer is, in Jakarta terms, a committer on a project.<DT><A HREF="org/apache/maven/project/Developer.html#Developer()"><B>Developer()</B></A> -
Constructor for class org.apache.maven.project.<A HREF="org/apache/maven/project/Developer.html">Developer</A>
<DD>Constructor for the Developer object
<DT><A HREF="org/apache/maven/jelly/MavenJellyContext.html#display()"><B>display()</B></A> -
Method in class org.apache.maven.jelly.<A HREF="org/apache/maven/jelly/MavenJellyContext.html">MavenJellyContext</A>
<DD>&nbsp;
<DT><A HREF="org/apache/maven/cli/App.html#displayGoals()"><B>displayGoals()</B></A> -
Method in class org.apache.maven.cli.<A HREF="org/apache/maven/cli/App.html">App</A>
<DD>Display helpful information regarding
  all documented goals.
<DT><A HREF="org/apache/maven/cli/CLIManager.html#displayHelp()"><B>displayHelp()</B></A> -
Static method in class org.apache.maven.cli.<A HREF="org/apache/maven/cli/CLIManager.html">CLIManager</A>
<DD>Display usage information based upon current
  command-line option configuration.
<DT><A HREF="org/apache/maven/cli/CLIManager.html#displayInfo()"><B>displayInfo()</B></A> -
Static method in class org.apache.maven.cli.<A HREF="org/apache/maven/cli/CLIManager.html">CLIManager</A>
<DD>Display system information.
<DT><A HREF="org/apache/maven/cli/App.html#displayRootProjectNotFound()"><B>displayRootProjectNotFound()</B></A> -
Method in class org.apache.maven.cli.<A HREF="org/apache/maven/cli/App.html">App</A>
<DD>&nbsp;
<DT><A HREF="org/apache/maven/cli/App.html#doMain(java.lang.String[], java.util.Date)"><B>doMain(String[], Date)</B></A> -
Method in class org.apache.maven.cli.<A HREF="org/apache/maven/cli/App.html">App</A>
<DD>Perform main operations in a non-static method.
<DT><A HREF="org/apache/maven/jelly/tags/maven/SnapshotSignature.html#doTag(org.apache.commons.jelly.XMLOutput)"><B>doTag(XMLOutput)</B></A> -
Method in class org.apache.maven.jelly.tags.maven.<A HREF="org/apache/maven/jelly/tags/maven/SnapshotSignature.html">SnapshotSignature</A>
<DD>Process the tag.
<DT><A HREF="org/apache/maven/jelly/tags/maven/ReactorTag.html#doTag(org.apache.commons.jelly.XMLOutput)"><B>doTag(XMLOutput)</B></A> -
Method in class org.apache.maven.jelly.tags.maven.<A HREF="org/apache/maven/jelly/tags/maven/ReactorTag.html">ReactorTag</A>
<DD>Execute the body of the reactor tag.
<DT><A HREF="org/apache/maven/jelly/tags/maven/PomTag.html#doTag(org.apache.commons.jelly.XMLOutput)"><B>doTag(XMLOutput)</B></A> -
Method in class org.apache.maven.jelly.tags.maven.<A HREF="org/apache/maven/jelly/tags/maven/PomTag.html">PomTag</A>
<DD>Perform functionality provided by the tag
<DT><A HREF="org/apache/maven/jelly/tags/maven/MavenTag.html#doTag(org.apache.commons.jelly.XMLOutput)"><B>doTag(XMLOutput)</B></A> -
Method in class org.apache.maven.jelly.tags.maven.<A HREF="org/apache/maven/jelly/tags/maven/MavenTag.html">MavenTag</A>
<DD>Process the tag.
<DT><A HREF="org/apache/maven/jelly/tags/maven/InputTag.html#doTag(org.apache.commons.jelly.XMLOutput)"><B>doTag(XMLOutput)</B></A> -
Method in class org.apache.maven.jelly.tags.maven.<A HREF="org/apache/maven/jelly/tags/maven/InputTag.html">InputTag</A>
<DD>Perform functionality provided by the tag.
<DT><A HREF="org/apache/maven/jelly/tags/maven/ConcatTag.html#doTag(org.apache.commons.jelly.XMLOutput)"><B>doTag(XMLOutput)</B></A> -
Method in class org.apache.maven.jelly.tags.maven.<A HREF="org/apache/maven/jelly/tags/maven/ConcatTag.html">ConcatTag</A>
<DD>Perform functionality provided by the tag.
<DT><A HREF="org/apache/maven/jelly/tags/maven/AddPathTag.html#doTag(org.apache.commons.jelly.XMLOutput)"><B>doTag(XMLOutput)</B></A> -
Method in class org.apache.maven.jelly.tags.maven.<A HREF="org/apache/maven/jelly/tags/maven/AddPathTag.html">AddPathTag</A>
<DD>Perform the tag processing.
<DT><A HREF="org/apache/maven/jelly/tags/werkz/LazyAttainGoalTag.html#doTag(org.apache.commons.jelly.XMLOutput)"><B>doTag(XMLOutput)</B></A> -
Method in class org.apache.maven.jelly.tags.werkz.<A HREF="org/apache/maven/jelly/tags/werkz/LazyAttainGoalTag.html">LazyAttainGoalTag</A>
<DD>Evaluate the body to register all the various goals and pre/post conditions
 then run all the current targets
<DT><A HREF="org/apache/maven/MavenConstants.html#DRIVER_PROPERTIES"><B>DRIVER_PROPERTIES</B></A> -
Static variable in class org.apache.maven.<A HREF="org/apache/maven/MavenConstants.html">MavenConstants</A>
<DD>Driver properties
<DT><A HREF="org/apache/maven/MavenSession.html#DRIVER_SCRIPT_NAME"><B>DRIVER_SCRIPT_NAME</B></A> -
Static variable in class org.apache.maven.<A HREF="org/apache/maven/MavenSession.html">MavenSession</A>
<DD>Initialization jellyscript name.
<DT><A HREF="org/apache/maven/DVSLFormatter.html"><B>DVSLFormatter</B></A> - class org.apache.maven.<A HREF="org/apache/maven/DVSLFormatter.html">DVSLFormatter</A>.<DD>Formatting tool for use with the DVSL toolbox.<DT><A HREF="org/apache/maven/DVSLFormatter.html#DVSLFormatter()"><B>DVSLFormatter()</B></A> -
Constructor for class org.apache.maven.<A HREF="org/apache/maven/DVSLFormatter.html">DVSLFormatter</A>
<DD>&nbsp;
<DT><A HREF="org/apache/maven/DVSLPathTool.html"><B>DVSLPathTool</B></A> - class org.apache.maven.<A HREF="org/apache/maven/DVSLPathTool.html">DVSLPathTool</A>.<DD>Path tool for use with the DVSL toolbox.<DT><A HREF="org/apache/maven/DVSLPathTool.html#DVSLPathTool()"><B>DVSLPathTool()</B></A> -
Constructor for class org.apache.maven.<A HREF="org/apache/maven/DVSLPathTool.html">DVSLPathTool</A>
<DD>&nbsp;
<DT><A HREF="org/apache/maven/plugin/PluginCacheManager.html#DYNAMIC_TAGLIBS_CACHE"><B>DYNAMIC_TAGLIBS_CACHE</B></A> -
Static variable in class org.apache.maven.plugin.<A HREF="org/apache/maven/plugin/PluginCacheManager.html">PluginCacheManager</A>
<DD>Taglibs cache
</DL>
<HR>
<A NAME="_E_"><!-- --></A><H2>
<B>E</B></H2>
<DL>
<DT><A HREF="org/apache/maven/MavenConstants.html#EMACS_MODE_ON"><B>EMACS_MODE_ON</B></A> -
Static variable in class org.apache.maven.<A HREF="org/apache/maven/MavenConstants.html">MavenConstants</A>
<DD>MavenSession debug flag tag.
<DT><A HREF="org/apache/maven/jelly/JellyBuildListener.html#emacsMode"><B>emacsMode</B></A> -
Variable in class org.apache.maven.jelly.<A HREF="org/apache/maven/jelly/JellyBuildListener.html">JellyBuildListener</A>
<DD>Whether or not to use emacs-style output
<DT><A HREF="org/apache/maven/util/MD5Sum.html#encode(byte[])"><B>encode(byte[])</B></A> -
Method in class org.apache.maven.util.<A HREF="org/apache/maven/util/MD5Sum.html">MD5Sum</A>
<DD>Encodes the 128 bit (16 bytes) MD5 into a 32 character String.
<DT><A HREF="org/apache/maven/plugin/DefaultPluginCacheManager.html#endElement(java.lang.String, java.lang.String, java.lang.String)"><B>endElement(String, String, String)</B></A> -
Method in class org.apache.maven.plugin.<A HREF="org/apache/maven/plugin/DefaultPluginCacheManager.html">DefaultPluginCacheManager</A>
<DD>&nbsp;
<DT><A HREF="org/apache/maven/project/BaseObject.html#equals(java.lang.Object)"><B>equals(Object)</B></A> -
Method in class org.apache.maven.project.<A HREF="org/apache/maven/project/BaseObject.html">BaseObject</A>
<DD>Whether the passed object is the same as this one.
<DT><A HREF="org/apache/maven/plugin/PluginCacheManager.html#error(org.xml.sax.SAXParseException)"><B>error(SAXParseException)</B></A> -
Method in class org.apache.maven.plugin.<A HREF="org/apache/maven/plugin/PluginCacheManager.html">PluginCacheManager</A>
<DD>Error callback.
<DT><A HREF="org/apache/maven/plugin/DefaultPluginCacheManager.html#error(org.xml.sax.SAXParseException)"><B>error(SAXParseException)</B></A> -
Method in class org.apache.maven.plugin.<A HREF="org/apache/maven/plugin/DefaultPluginCacheManager.html">DefaultPluginCacheManager</A>
<DD>Error callback.
<DT><A HREF="org/apache/maven/ant/MavenTask.html#execute()"><B>execute()</B></A> -
Method in class org.apache.maven.ant.<A HREF="org/apache/maven/ant/MavenTask.html">MavenTask</A>
<DD>Does the work.
<DT><A HREF="org/apache/maven/util/MD5Sum.html#execute()"><B>execute()</B></A> -
Method in class org.apache.maven.util.<A HREF="org/apache/maven/util/MD5Sum.html">MD5Sum</A>
<DD>Perform the MD5-Sum work.
<DT><A HREF="org/apache/maven/util/Expand.html#execute()"><B>execute()</B></A> -
Method in class org.apache.maven.util.<A HREF="org/apache/maven/util/Expand.html">Expand</A>
<DD>Do the work.
<DT><A HREF="org/apache/maven/repository/Artifact.html#exists()"><B>exists()</B></A> -
Method in interface org.apache.maven.repository.<A HREF="org/apache/maven/repository/Artifact.html">Artifact</A>
<DD>Boolean flag indicating whether this artifact exists.
<DT><A HREF="org/apache/maven/repository/AbstractArtifact.html#exists()"><B>exists()</B></A> -
Method in class org.apache.maven.repository.<A HREF="org/apache/maven/repository/AbstractArtifact.html">AbstractArtifact</A>
<DD>&nbsp;
<DT><A HREF="org/apache/maven/cli/App.html#exit(int)"><B>exit(int)</B></A> -
Method in class org.apache.maven.cli.<A HREF="org/apache/maven/cli/App.html">App</A>
<DD>To allow subclasses stop the app from exiting
<DT><A HREF="org/apache/maven/util/Expand.html"><B>Expand</B></A> - class org.apache.maven.util.<A HREF="org/apache/maven/util/Expand.html">Expand</A>.<DD>Unzip a file.<DT><A HREF="org/apache/maven/util/Expand.html#Expand()"><B>Expand()</B></A> -
Constructor for class org.apache.maven.util.<A HREF="org/apache/maven/util/Expand.html">Expand</A>
<DD>&nbsp;
<DT><A HREF="org/apache/maven/util/Expand.html#expandFile(org.apache.tools.ant.util.FileUtils, java.io.File, java.io.File)"><B>expandFile(FileUtils, File, File)</B></A> -
Method in class org.apache.maven.util.<A HREF="org/apache/maven/util/Expand.html">Expand</A>
<DD>Expand a file.
<DT><A HREF="org/apache/maven/util/Expand.html#extractFile(org.apache.tools.ant.util.FileUtils, java.io.File, java.io.File, java.io.InputStream, java.lang.String, java.util.Date, boolean)"><B>extractFile(FileUtils, File, File, InputStream, String, Date, boolean)</B></A> -
Method in class org.apache.maven.util.<A HREF="org/apache/maven/util/Expand.html">Expand</A>
<DD>Extract a file.
</DL>
<HR>
<A NAME="_F_"><!-- --></A><H2>
<B>F</B></H2>
<DL>
<DT><A HREF="org/apache/maven/plugin/PluginCacheManager.html#fatalError(org.xml.sax.SAXParseException)"><B>fatalError(SAXParseException)</B></A> -
Method in class org.apache.maven.plugin.<A HREF="org/apache/maven/plugin/PluginCacheManager.html">PluginCacheManager</A>
<DD>Fatal error callback.
<DT><A HREF="org/apache/maven/plugin/DefaultPluginCacheManager.html#fatalError(org.xml.sax.SAXParseException)"><B>fatalError(SAXParseException)</B></A> -
Method in class org.apache.maven.plugin.<A HREF="org/apache/maven/plugin/DefaultPluginCacheManager.html">DefaultPluginCacheManager</A>
<DD>Fatal error callback.
<DT><A HREF="org/apache/maven/util/ResourceBean.html#findResource(java.lang.String)"><B>findResource(String)</B></A> -
Method in class org.apache.maven.util.<A HREF="org/apache/maven/util/ResourceBean.html">ResourceBean</A>
<DD>Attempts to load the given resource from the given name.
<DT><A HREF="org/apache/maven/cli/App.html#format(java.lang.String, int, char)"><B>format(String, int, char)</B></A> -
Method in class org.apache.maven.cli.<A HREF="org/apache/maven/cli/App.html">App</A>
<DD>Produce a formatted/padded string.
<DT><A HREF="org/apache/maven/DVSLFormatter.html#formatNumber(java.lang.String, java.lang.String)"><B>formatNumber(String, String)</B></A> -
Static method in class org.apache.maven.<A HREF="org/apache/maven/DVSLFormatter.html">DVSLFormatter</A>
<DD>Formats a string as a number using the specified pattern.
<DT><A HREF="org/apache/maven/cli/App.html#formatTime(long)"><B>formatTime(long)</B></A> -
Static method in class org.apache.maven.cli.<A HREF="org/apache/maven/cli/App.html">App</A>
<DD>Format a time string.
</DL>
<HR>
<A NAME="_G_"><!-- --></A><H2>
<B>G</B></H2>
<DL>
<DT><A HREF="org/apache/maven/repository/PluginArtifact.html#generatePath()"><B>generatePath()</B></A> -
Method in class org.apache.maven.repository.<A HREF="org/apache/maven/repository/PluginArtifact.html">PluginArtifact</A>
<DD>&nbsp;
<DT><A HREF="org/apache/maven/repository/Artifact.html#generatePath()"><B>generatePath()</B></A> -
Method in interface org.apache.maven.repository.<A HREF="org/apache/maven/repository/Artifact.html">Artifact</A>
<DD>Generate the path for this artifact given its dependency attributes.
<DT><A HREF="org/apache/maven/repository/AbstractArtifact.html#generatePath()"><B>generatePath()</B></A> -
Method in class org.apache.maven.repository.<A HREF="org/apache/maven/repository/AbstractArtifact.html">AbstractArtifact</A>
<DD>&nbsp;
<DT><A HREF="org/apache/maven/repository/GenericArtifact.html"><B>GenericArtifact</B></A> - class org.apache.maven.repository.<A HREF="org/apache/maven/repository/GenericArtifact.html">GenericArtifact</A>.<DD>Generic artifact that builds its path and url information based on its
 associated dependency.<DT><A HREF="org/apache/maven/repository/GenericArtifact.html#GenericArtifact(org.apache.maven.project.Dependency)"><B>GenericArtifact(Dependency)</B></A> -
Constructor for class org.apache.maven.repository.<A HREF="org/apache/maven/repository/GenericArtifact.html">GenericArtifact</A>
<DD>Constructor for the GenericArtifact object
<DT><A HREF="org/apache/maven/MavenSession.html#getAllGoalNames()"><B>getAllGoalNames()</B></A> -
Method in class org.apache.maven.<A HREF="org/apache/maven/MavenSession.html">MavenSession</A>
<DD>Return all goals requested to be attained.
<DT><A HREF="org/apache/maven/jelly/MavenJellyContext.html#getAntProject()"><B>getAntProject()</B></A> -
Method in class org.apache.maven.jelly.<A HREF="org/apache/maven/jelly/MavenJellyContext.html">MavenJellyContext</A>
<DD>Get the ant project.
<DT><A HREF="org/apache/maven/project/Project.html#getAntProject()"><B>getAntProject()</B></A> -
Method in class org.apache.maven.project.<A HREF="org/apache/maven/project/Project.html">Project</A>
<DD>Get the grantProject attribute.
<DT><A HREF="org/apache/maven/project/MailingList.html#getArchive()"><B>getArchive()</B></A> -
Method in class org.apache.maven.project.<A HREF="org/apache/maven/project/MailingList.html">MailingList</A>
<DD>Gets the archive attribute of the MailingList object
<DT><A HREF="org/apache/maven/project/Dependency.html#getArtifact()"><B>getArtifact()</B></A> -
Method in class org.apache.maven.project.<A HREF="org/apache/maven/project/Dependency.html">Dependency</A>
<DD>Gets the artifact name of the dependency.
<DT><A HREF="org/apache/maven/project/Project.html#getArtifactDirectory()"><B>getArtifactDirectory()</B></A> -
Method in class org.apache.maven.project.<A HREF="org/apache/maven/project/Project.html">Project</A>
<DD>&nbsp;
<DT><A HREF="org/apache/maven/project/Dependency.html#getArtifactDirectory()"><B>getArtifactDirectory()</B></A> -
Method in class org.apache.maven.project.<A HREF="org/apache/maven/project/Dependency.html">Dependency</A>
<DD>Get the directory to place the artifact in.
<DT><A HREF="org/apache/maven/project/Project.html#getArtifactId()"><B>getArtifactId()</B></A> -
Method in class org.apache.maven.project.<A HREF="org/apache/maven/project/Project.html">Project</A>
<DD>Get the artifact id.
<DT><A HREF="org/apache/maven/project/Dependency.html#getArtifactId()"><B>getArtifactId()</B></A> -
Method in class org.apache.maven.project.<A HREF="org/apache/maven/project/Dependency.html">Dependency</A>
<DD>Get the artifact id.
<DT><A HREF="org/apache/maven/project/Project.html#getArtifacts()"><B>getArtifacts()</B></A> -
Method in class org.apache.maven.project.<A HREF="org/apache/maven/project/Project.html">Project</A>
<DD>Get the  attribute.
<DT><A HREF="org/apache/maven/project/Build.html#getAspectSourceDirectory()"><B>getAspectSourceDirectory()</B></A> -
Method in class org.apache.maven.project.<A HREF="org/apache/maven/project/Build.html">Build</A>
<DD>Gets the directory that Aspect/J source is stored in
<DT><A HREF="org/apache/maven/jelly/tags/maven/ReactorTag.html#getBanner()"><B>getBanner()</B></A> -
Method in class org.apache.maven.jelly.tags.maven.<A HREF="org/apache/maven/jelly/tags/maven/ReactorTag.html">ReactorTag</A>
<DD>Get the banner to be displayed for project while it
 is being processed.
<DT><A HREF="org/apache/maven/jelly/tags/maven/ReactorTag.html#getBasedir()"><B>getBasedir()</B></A> -
Method in class org.apache.maven.jelly.tags.maven.<A HREF="org/apache/maven/jelly/tags/maven/ReactorTag.html">ReactorTag</A>
<DD>Getter for the basedir property
<DT><A HREF="org/apache/maven/jelly/MavenJellyContext.html#getBoolean(java.lang.String)"><B>getBoolean(String)</B></A> -
Method in class org.apache.maven.jelly.<A HREF="org/apache/maven/jelly/MavenJellyContext.html">MavenJellyContext</A>
<DD>Convert a <code>String</code> property to a
 <code>Boolean</code> based on its contents.
<DT><A HREF="org/apache/maven/project/Project.html#getBuild()"><B>getBuild()</B></A> -
Method in class org.apache.maven.project.<A HREF="org/apache/maven/project/Project.html">Project</A>
<DD>Get the build model for this project.
<DT><A HREF="org/apache/maven/util/MD5Sum.html#getBytes(java.io.File)"><B>getBytes(File)</B></A> -
Method in class org.apache.maven.util.<A HREF="org/apache/maven/util/MD5Sum.html">MD5Sum</A>
<DD>Pull in static content and store it
<DT><A HREF="org/apache/maven/plugin/PluginCacheManager.html#getCallbackCache()"><B>getCallbackCache()</B></A> -
Method in class org.apache.maven.plugin.<A HREF="org/apache/maven/plugin/PluginCacheManager.html">PluginCacheManager</A>
<DD>&nbsp;
<DT><A HREF="org/apache/maven/util/MD5Sum.html#getChecksum()"><B>getChecksum()</B></A> -
Method in class org.apache.maven.util.<A HREF="org/apache/maven/util/MD5Sum.html">MD5Sum</A>
<DD>Get the checksum
<DT><A HREF="org/apache/maven/repository/Artifact.html#getChecksumUrl()"><B>getChecksumUrl()</B></A> -
Method in interface org.apache.maven.repository.<A HREF="org/apache/maven/repository/Artifact.html">Artifact</A>
<DD>Return the url to the checksum file for this artifact.
<DT><A HREF="org/apache/maven/repository/AbstractArtifact.html#getChecksumUrl()"><B>getChecksumUrl()</B></A> -
Method in class org.apache.maven.repository.<A HREF="org/apache/maven/repository/AbstractArtifact.html">AbstractArtifact</A>
<DD>&nbsp;
<DT><A HREF="org/apache/maven/util/ResourceBean.html#getClassLoader()"><B>getClassLoader()</B></A> -
Method in class org.apache.maven.util.<A HREF="org/apache/maven/util/ResourceBean.html">ResourceBean</A>
<DD>Returns the classLoader.
<DT><A HREF="org/apache/maven/project/SourceModification.html#getClassName()"><B>getClassName()</B></A> -
Method in class org.apache.maven.project.<A HREF="org/apache/maven/project/SourceModification.html">SourceModification</A>
<DD>Gets the className attribute of the SourceModification object
<DT><A HREF="org/apache/maven/cli/App.html#getCli()"><B>getCli()</B></A> -
Method in class org.apache.maven.cli.<A HREF="org/apache/maven/cli/App.html">App</A>
<DD>Get the CLI parser.
<DT><A HREF="org/apache/maven/project/License.html#getComments()"><B>getComments()</B></A> -
Method in class org.apache.maven.project.<A HREF="org/apache/maven/project/License.html">License</A>
<DD>&nbsp;
<DT><A HREF="org/apache/maven/project/Repository.html#getConnection()"><B>getConnection()</B></A> -
Method in class org.apache.maven.project.<A HREF="org/apache/maven/project/Repository.html">Repository</A>
<DD>Gets the connection attribute of the Repository object
<DT><A HREF="org/apache/maven/project/Project.html#getContext()"><B>getContext()</B></A> -
Method in class org.apache.maven.project.<A HREF="org/apache/maven/project/Project.html">Project</A>
<DD>Get the context attribute.
<DT><A HREF="org/apache/maven/project/Project.html#getContributors()"><B>getContributors()</B></A> -
Method in class org.apache.maven.project.<A HREF="org/apache/maven/project/Project.html">Project</A>
<DD>Return the contributors for this project.
<DT><A HREF="org/apache/maven/MavenTool.html#getCount()"><B>getCount()</B></A> -
Method in class org.apache.maven.<A HREF="org/apache/maven/MavenTool.html">MavenTool</A>
<DD>get a list of counted items with the key being the number of times
 counted and the value any arbitrary item that was counted
<DT><A HREF="org/apache/maven/MavenTool.html#getCountDescending()"><B>getCountDescending()</B></A> -
Method in class org.apache.maven.<A HREF="org/apache/maven/MavenTool.html">MavenTool</A>
<DD>get a list of counted items with the key being the number of times
 counted (in descending order) and the value any arbitrary item that was
 counted
<DT><A HREF="org/apache/maven/project/Project.html#getCurrentVersion()"><B>getCurrentVersion()</B></A> -
Method in class org.apache.maven.project.<A HREF="org/apache/maven/project/Project.html">Project</A>
<DD>Gets the currentVersion attribute of the Project object.
<DT><A HREF="org/apache/maven/project/Repository.html#getCvsModule()"><B>getCvsModule()</B></A> -
Method in class org.apache.maven.project.<A HREF="org/apache/maven/project/Repository.html">Repository</A>
<DD>Get cvs module.
<DT><A HREF="org/apache/maven/project/Repository.html#getCvsRoot()"><B>getCvsRoot()</B></A> -
Method in class org.apache.maven.project.<A HREF="org/apache/maven/project/Repository.html">Repository</A>
<DD>Get cvs root.
<DT><A HREF="org/apache/maven/jelly/MavenJellyContext.html#getDebugOn()"><B>getDebugOn()</B></A> -
Method in class org.apache.maven.jelly.<A HREF="org/apache/maven/jelly/MavenJellyContext.html">MavenJellyContext</A>
<DD>Get the debug flag.
<DT><A HREF="org/apache/maven/project/Project.html#getDependencies()"><B>getDependencies()</B></A> -
Method in class org.apache.maven.project.<A HREF="org/apache/maven/project/Project.html">Project</A>
<DD>Get the list of dependencies for this project.
<DT><A HREF="org/apache/maven/repository/Artifact.html#getDependency()"><B>getDependency()</B></A> -
Method in interface org.apache.maven.repository.<A HREF="org/apache/maven/repository/Artifact.html">Artifact</A>
<DD>Get the dependency.
<DT><A HREF="org/apache/maven/repository/AbstractArtifact.html#getDependency()"><B>getDependency()</B></A> -
Method in class org.apache.maven.repository.<A HREF="org/apache/maven/repository/AbstractArtifact.html">AbstractArtifact</A>
<DD>&nbsp;
<DT><A HREF="org/apache/maven/project/Project.html#getDependency(java.lang.String)"><B>getDependency(String)</B></A> -
Method in class org.apache.maven.project.<A HREF="org/apache/maven/project/Project.html">Project</A>
<DD>Get an individual dependency by id.
<DT><A HREF="org/apache/maven/project/Project.html#getDependencyClasspath()"><B>getDependencyClasspath()</B></A> -
Method in class org.apache.maven.project.<A HREF="org/apache/maven/project/Project.html">Project</A>
<DD>Get the dependency classpath.
<DT><A HREF="org/apache/maven/project/Project.html#getDependencyPath(java.lang.String)"><B>getDependencyPath(String)</B></A> -
Method in class org.apache.maven.project.<A HREF="org/apache/maven/project/Project.html">Project</A>
<DD>Get an individual dependencies classpath entry.
<DT><A HREF="org/apache/maven/project/Project.html#getDependencyVerifier()"><B>getDependencyVerifier()</B></A> -
Method in class org.apache.maven.project.<A HREF="org/apache/maven/project/Project.html">Project</A>
<DD>Get the dependency verifier for this project.
<DT><A HREF="org/apache/maven/project/Project.html#getDependentProjectIds()"><B>getDependentProjectIds()</B></A> -
Method in class org.apache.maven.project.<A HREF="org/apache/maven/project/Project.html">Project</A>
<DD>Get the list of dependent projects ids.
<DT><A HREF="org/apache/maven/project/Project.html#getDescription()"><B>getDescription()</B></A> -
Method in class org.apache.maven.project.<A HREF="org/apache/maven/project/Project.html">Project</A>
<DD>Gets the description attribute of the Project object.
<DT><A HREF="org/apache/maven/jelly/tags/maven/MavenTag.html#getDescriptor()"><B>getDescriptor()</B></A> -
Method in class org.apache.maven.jelly.tags.maven.<A HREF="org/apache/maven/jelly/tags/maven/MavenTag.html">MavenTag</A>
<DD>Getter for the descriptor property
<DT><A HREF="org/apache/maven/project/Project.html#getDevelopers()"><B>getDevelopers()</B></A> -
Method in class org.apache.maven.project.<A HREF="org/apache/maven/project/Project.html">Project</A>
<DD>Return the developers for this project.
<DT><A HREF="org/apache/maven/project/Resource.html#getDirectory()"><B>getDirectory()</B></A> -
Method in class org.apache.maven.project.<A HREF="org/apache/maven/project/Resource.html">Resource</A>
<DD>Get the directory where resources are located.
<DT><A HREF="org/apache/maven/DVSLPathTool.html#getDirectoryComponent(java.lang.String)"><B>getDirectoryComponent(String)</B></A> -
Static method in class org.apache.maven.<A HREF="org/apache/maven/DVSLPathTool.html">DVSLPathTool</A>
<DD>Determines the directory component of a filename.
<DT><A HREF="org/apache/maven/project/License.html#getDistribution()"><B>getDistribution()</B></A> -
Method in class org.apache.maven.project.<A HREF="org/apache/maven/project/License.html">License</A>
<DD>&nbsp;
<DT><A HREF="org/apache/maven/project/Project.html#getDistributionDirectory()"><B>getDistributionDirectory()</B></A> -
Method in class org.apache.maven.project.<A HREF="org/apache/maven/project/Project.html">Project</A>
<DD>Get the project's distribution directory.
<DT><A HREF="org/apache/maven/project/Project.html#getDistributionSite()"><B>getDistributionSite()</B></A> -
Method in class org.apache.maven.project.<A HREF="org/apache/maven/project/Project.html">Project</A>
<DD>Get the project's distribution site.
<DT><A HREF="org/apache/maven/plugin/PluginCacheManager.html#getDynaTagLibCache()"><B>getDynaTagLibCache()</B></A> -
Method in class org.apache.maven.plugin.<A HREF="org/apache/maven/plugin/PluginCacheManager.html">PluginCacheManager</A>
<DD>&nbsp;
<DT><A HREF="org/apache/maven/plugin/PluginCacheManager.html#getDynaTagLibDecls()"><B>getDynaTagLibDecls()</B></A> -
Method in class org.apache.maven.plugin.<A HREF="org/apache/maven/plugin/PluginCacheManager.html">PluginCacheManager</A>
<DD>&nbsp;
<DT><A HREF="org/apache/maven/jelly/MavenJellyContext.html#getEmacsModeOn()"><B>getEmacsModeOn()</B></A> -
Method in class org.apache.maven.jelly.<A HREF="org/apache/maven/jelly/MavenJellyContext.html">MavenJellyContext</A>
<DD>Get the emacs mode flag.
<DT><A HREF="org/apache/maven/project/Contributor.html#getEmail()"><B>getEmail()</B></A> -
Method in class org.apache.maven.project.<A HREF="org/apache/maven/project/Contributor.html">Contributor</A>
<DD>Gets the email attribute of the Contributor object
<DT><A HREF="org/apache/maven/MavenException.html#getException()"><B>getException()</B></A> -
Method in class org.apache.maven.<A HREF="org/apache/maven/MavenException.html">MavenException</A>
<DD>Returns the nested exception, if any.
<DT><A HREF="org/apache/maven/jelly/tags/maven/ReactorTag.html#getExcludes()"><B>getExcludes()</B></A> -
Method in class org.apache.maven.jelly.tags.maven.<A HREF="org/apache/maven/jelly/tags/maven/ReactorTag.html">ReactorTag</A>
<DD>Get the excludes used to find projects.
<DT><A HREF="org/apache/maven/project/Resource.html#getExcludes()"><B>getExcludes()</B></A> -
Method in class org.apache.maven.project.<A HREF="org/apache/maven/project/Resource.html">Resource</A>
<DD>Retrieve a list of exclude patterns.
<DT><A HREF="org/apache/maven/jelly/tags/maven/WerkzDependencyResolver.html#getExistingGoal(org.apache.maven.project.Project)"><B>getExistingGoal(Project)</B></A> -
Method in class org.apache.maven.jelly.tags.maven.<A HREF="org/apache/maven/jelly/tags/maven/WerkzDependencyResolver.html">WerkzDependencyResolver</A>
<DD>Retrieves the existing goal for a project (based on Id).
<DT><A HREF="org/apache/maven/project/Project.html#getExtend()"><B>getExtend()</B></A> -
Method in class org.apache.maven.project.<A HREF="org/apache/maven/project/Project.html">Project</A>
<DD>Get the path to the file that this project extends.
<DT><A HREF="org/apache/maven/project/Project.html#getFile()"><B>getFile()</B></A> -
Method in class org.apache.maven.project.<A HREF="org/apache/maven/project/Project.html">Project</A>
<DD>Get the file this POM was derived from
<DT><A HREF="org/apache/maven/repository/Artifact.html#getFile()"><B>getFile()</B></A> -
Method in interface org.apache.maven.repository.<A HREF="org/apache/maven/repository/Artifact.html">Artifact</A>
<DD>Get the location of the artifact in the local file system.
<DT><A HREF="org/apache/maven/repository/AbstractArtifact.html#getFile()"><B>getFile()</B></A> -
Method in class org.apache.maven.repository.<A HREF="org/apache/maven/repository/AbstractArtifact.html">AbstractArtifact</A>
<DD>&nbsp;
<DT><A HREF="org/apache/maven/util/MD5Sum.html#getFile()"><B>getFile()</B></A> -
Method in class org.apache.maven.util.<A HREF="org/apache/maven/util/MD5Sum.html">MD5Sum</A>
<DD>Get the file that the checksum will be perform on.
<DT><A HREF="org/apache/maven/util/HttpUtils.html#getFile(java.lang.String, java.io.File, boolean, boolean, java.lang.String, java.lang.String, java.lang.String, java.lang.String)"><B>getFile(String, File, boolean, boolean, String, String, String, String)</B></A> -
Static method in class org.apache.maven.util.<A HREF="org/apache/maven/util/HttpUtils.html">HttpUtils</A>
<DD>Retrieve a remote file.
<DT><A HREF="org/apache/maven/util/HttpUtils.html#getFile(java.lang.String, java.io.File, boolean, boolean, java.lang.String, java.lang.String, java.lang.String, java.lang.String, boolean)"><B>getFile(String, File, boolean, boolean, String, String, String, String, boolean)</B></A> -
Static method in class org.apache.maven.util.<A HREF="org/apache/maven/util/HttpUtils.html">HttpUtils</A>
<DD>Retrieve a remote file.
<DT><A HREF="org/apache/maven/MavenUtils.html#getFiles(java.io.File, java.lang.String)"><B>getFiles(File, String)</B></A> -
Static method in class org.apache.maven.<A HREF="org/apache/maven/MavenUtils.html">MavenUtils</A>
<DD>Get a set of files from a specifed directory with a set of includes.
<DT><A HREF="org/apache/maven/MavenUtils.html#getFiles(java.io.File, java.lang.String, java.lang.String)"><B>getFiles(File, String, String)</B></A> -
Static method in class org.apache.maven.<A HREF="org/apache/maven/MavenUtils.html">MavenUtils</A>
<DD>Get a set of files from a specifed directory with a set of includes.
<DT><A HREF="org/apache/maven/jelly/tags/maven/ReactorTag.html#getGlob()"><B>getGlob()</B></A> -
Method in class org.apache.maven.jelly.tags.maven.<A HREF="org/apache/maven/jelly/tags/maven/ReactorTag.html">ReactorTag</A>
<DD>Get the glob used to find projects.
<DT><A HREF="org/apache/maven/plugin/PluginCacheManager.html#getGoalCache()"><B>getGoalCache()</B></A> -
Method in class org.apache.maven.plugin.<A HREF="org/apache/maven/plugin/PluginCacheManager.html">PluginCacheManager</A>
<DD>&nbsp;
<DT><A HREF="org/apache/maven/MavenSession.html#getGoalDescription(java.lang.String)"><B>getGoalDescription(String)</B></A> -
Method in class org.apache.maven.<A HREF="org/apache/maven/MavenSession.html">MavenSession</A>
<DD>Get a given goal's description.
<DT><A HREF="org/apache/maven/plugin/PluginManager.html#getGoalDescription(java.lang.String)"><B>getGoalDescription(String)</B></A> -
Method in class org.apache.maven.plugin.<A HREF="org/apache/maven/plugin/PluginManager.html">PluginManager</A>
<DD>Retrieve a goal description by the goal name.
<DT><A HREF="org/apache/maven/plugin/DefaultPluginManager.html#getGoalDescription(java.lang.String)"><B>getGoalDescription(String)</B></A> -
Method in class org.apache.maven.plugin.<A HREF="org/apache/maven/plugin/DefaultPluginManager.html">DefaultPluginManager</A>
<DD>Retrieve a goal description by the goal name.
<DT><A HREF="org/apache/maven/UnknownGoalException.html#getGoalName()"><B>getGoalName()</B></A> -
Method in class org.apache.maven.<A HREF="org/apache/maven/UnknownGoalException.html">UnknownGoalException</A>
<DD>Retrieve the unknown goal name.
<DT><A HREF="org/apache/maven/ant/MavenTask.html#getGoalName()"><B>getGoalName()</B></A> -
Method in class org.apache.maven.ant.<A HREF="org/apache/maven/ant/MavenTask.html">MavenTask</A>
<DD>Gets the value of goalName
<DT><A HREF="org/apache/maven/MavenSession.html#getGoalNames()"><B>getGoalNames()</B></A> -
Method in class org.apache.maven.<A HREF="org/apache/maven/MavenSession.html">MavenSession</A>
<DD>Retrieve the list of goal names.
<DT><A HREF="org/apache/maven/plugin/PluginManager.html#getGoalNames()"><B>getGoalNames()</B></A> -
Method in class org.apache.maven.plugin.<A HREF="org/apache/maven/plugin/PluginManager.html">PluginManager</A>
<DD>Retrieve the set of all goal names.
<DT><A HREF="org/apache/maven/plugin/DefaultPluginManager.html#getGoalNames()"><B>getGoalNames()</B></A> -
Method in class org.apache.maven.plugin.<A HREF="org/apache/maven/plugin/DefaultPluginManager.html">DefaultPluginManager</A>
<DD>Retrieve the set of all goal names.
<DT><A HREF="org/apache/maven/project/Project.html#getGoalNames()"><B>getGoalNames()</B></A> -
Method in class org.apache.maven.project.<A HREF="org/apache/maven/project/Project.html">Project</A>
<DD>Get the goal names that must be satisfied.
<DT><A HREF="org/apache/maven/jelly/tags/maven/MavenTag.html#getGoals()"><B>getGoals()</B></A> -
Method in class org.apache.maven.jelly.tags.maven.<A HREF="org/apache/maven/jelly/tags/maven/MavenTag.html">MavenTag</A>
<DD>Getter for the goals property
<DT><A HREF="org/apache/maven/project/Project.html#getGroupId()"><B>getGroupId()</B></A> -
Method in class org.apache.maven.project.<A HREF="org/apache/maven/project/Project.html">Project</A>
<DD>The group id in a particular POM refers to a real id of another
 project.
<DT><A HREF="org/apache/maven/project/Dependency.html#getGroupId()"><B>getGroupId()</B></A> -
Method in class org.apache.maven.project.<A HREF="org/apache/maven/project/Dependency.html">Dependency</A>
<DD>Get the group id.
<DT><A HREF="org/apache/maven/project/Project.html#getGumpRepositoryId()"><B>getGumpRepositoryId()</B></A> -
Method in class org.apache.maven.project.<A HREF="org/apache/maven/project/Project.html">Project</A>
<DD>Get the gump repository descriptor.
<DT><A HREF="org/apache/maven/jelly/tags/maven/AddPathTag.html#getId()"><B>getId()</B></A> -
Method in class org.apache.maven.jelly.tags.maven.<A HREF="org/apache/maven/jelly/tags/maven/AddPathTag.html">AddPathTag</A>
<DD>Getter for the id property
<DT><A HREF="org/apache/maven/project/Project.html#getId()"><B>getId()</B></A> -
Method in class org.apache.maven.project.<A HREF="org/apache/maven/project/Project.html">Project</A>
<DD>&nbsp;
<DT><A HREF="org/apache/maven/project/Dependency.html#getId()"><B>getId()</B></A> -
Method in class org.apache.maven.project.<A HREF="org/apache/maven/project/Dependency.html">Dependency</A>
<DD>&nbsp;
<DT><A HREF="org/apache/maven/project/BaseObject.html#getId()"><B>getId()</B></A> -
Method in class org.apache.maven.project.<A HREF="org/apache/maven/project/BaseObject.html">BaseObject</A>
<DD>Gets the id attribute
<DT><A HREF="org/apache/maven/project/Project.html#getInceptionYear()"><B>getInceptionYear()</B></A> -
Method in class org.apache.maven.project.<A HREF="org/apache/maven/project/Project.html">Project</A>
<DD>Gets the inceptionYear attribute of the Project object
<DT><A HREF="org/apache/maven/jelly/tags/maven/ReactorTag.html#getIncludes()"><B>getIncludes()</B></A> -
Method in class org.apache.maven.jelly.tags.maven.<A HREF="org/apache/maven/jelly/tags/maven/ReactorTag.html">ReactorTag</A>
<DD>Get the includes used to find projects.
<DT><A HREF="org/apache/maven/project/Resource.html#getIncludes()"><B>getIncludes()</B></A> -
Method in class org.apache.maven.project.<A HREF="org/apache/maven/project/Resource.html">Resource</A>
<DD>Retrieve a list of include patterns.
<DT><A HREF="org/apache/maven/project/Build.html#getIntegrationUnitTestSourceDirectory()"><B>getIntegrationUnitTestSourceDirectory()</B></A> -
Method in class org.apache.maven.project.<A HREF="org/apache/maven/project/Build.html">Build</A>
<DD>Get the integration unit test source directory.
<DT><A HREF="org/apache/maven/project/Project.html#getIssueTrackingUrl()"><B>getIssueTrackingUrl()</B></A> -
Method in class org.apache.maven.project.<A HREF="org/apache/maven/project/Project.html">Project</A>
<DD>Set the URL to this project's issue tracking system.
<DT><A HREF="org/apache/maven/project/Dependency.html#getJar()"><B>getJar()</B></A> -
Method in class org.apache.maven.project.<A HREF="org/apache/maven/project/Dependency.html">Dependency</A>
<DD>Get the name of the JAR.
<DT><A HREF="org/apache/maven/project/Project.html#getLicenses()"><B>getLicenses()</B></A> -
Method in class org.apache.maven.project.<A HREF="org/apache/maven/project/Project.html">Project</A>
<DD>Return the licenses for this project.
<DT><A HREF="org/apache/maven/project/Project.html#getLogo()"><B>getLogo()</B></A> -
Method in class org.apache.maven.project.<A HREF="org/apache/maven/project/Project.html">Project</A>
<DD>Return the project logo image URL.
<DT><A HREF="org/apache/maven/project/Organization.html#getLogo()"><B>getLogo()</B></A> -
Method in class org.apache.maven.project.<A HREF="org/apache/maven/project/Organization.html">Organization</A>
<DD>Gets the organization logo text.
<DT><A HREF="org/apache/maven/project/Project.html#getMailingLists()"><B>getMailingLists()</B></A> -
Method in class org.apache.maven.project.<A HREF="org/apache/maven/project/Project.html">Project</A>
<DD>Return the mailing lists for this project.
<DT><A HREF="org/apache/maven/jelly/tags/BaseTagSupport.html#getMavenContext()"><B>getMavenContext()</B></A> -
Method in class org.apache.maven.jelly.tags.<A HREF="org/apache/maven/jelly/tags/BaseTagSupport.html">BaseTagSupport</A>
<DD>&nbsp;
<DT><A HREF="org/apache/maven/ant/MavenTask.html#getMavenHome()"><B>getMavenHome()</B></A> -
Method in class org.apache.maven.ant.<A HREF="org/apache/maven/ant/MavenTask.html">MavenTask</A>
<DD>Gets the value of mavenHome
<DT><A HREF="org/apache/maven/jelly/MavenJellyContext.html#getMavenHome()"><B>getMavenHome()</B></A> -
Method in class org.apache.maven.jelly.<A HREF="org/apache/maven/jelly/MavenJellyContext.html">MavenJellyContext</A>
<DD>Get MavenSession home.
<DT><A HREF="org/apache/maven/jelly/MavenJellyContext.html#getMavenJarOverride()"><B>getMavenJarOverride()</B></A> -
Method in class org.apache.maven.jelly.<A HREF="org/apache/maven/jelly/MavenJellyContext.html">MavenJellyContext</A>
<DD>Get the flag indicating the use of the JAR overriding facility.
<DT><A HREF="org/apache/maven/jelly/MavenJellyContext.html#getMavenJarOverride(java.lang.String)"><B>getMavenJarOverride(String)</B></A> -
Method in class org.apache.maven.jelly.<A HREF="org/apache/maven/jelly/MavenJellyContext.html">MavenJellyContext</A>
<DD>Get the maven jar override value for a particular dependency.
<DT><A HREF="org/apache/maven/jelly/MavenJellyContext.html#getMavenRepoLocal()"><B>getMavenRepoLocal()</B></A> -
Method in class org.apache.maven.jelly.<A HREF="org/apache/maven/jelly/MavenJellyContext.html">MavenJellyContext</A>
<DD>Get the mavenRepoRemote attribute.
<DT><A HREF="org/apache/maven/jelly/MavenJellyContext.html#getMavenRepoRemote()"><B>getMavenRepoRemote()</B></A> -
Method in class org.apache.maven.jelly.<A HREF="org/apache/maven/jelly/MavenJellyContext.html">MavenJellyContext</A>
<DD>Get the mavenRepoRemote attribute.
<DT><A HREF="org/apache/maven/jelly/MavenJellyContext.html#getMavenSession()"><B>getMavenSession()</B></A> -
Method in class org.apache.maven.jelly.<A HREF="org/apache/maven/jelly/MavenJellyContext.html">MavenJellyContext</A>
<DD>Get the mavenSession attribute.
<DT><A HREF="org/apache/maven/MavenUtils.html#getMessage(java.lang.String)"><B>getMessage(String)</B></A> -
Static method in class org.apache.maven.<A HREF="org/apache/maven/MavenUtils.html">MavenUtils</A>
<DD>Retrieve a user message.
<DT><A HREF="org/apache/maven/AbstractMavenComponent.html#getMessage(java.lang.String)"><B>getMessage(String)</B></A> -
Method in class org.apache.maven.<A HREF="org/apache/maven/AbstractMavenComponent.html">AbstractMavenComponent</A>
<DD>&nbsp;
<DT><A HREF="org/apache/maven/MavenUtils.html#getMessage(java.lang.String, java.lang.Object)"><B>getMessage(String, Object)</B></A> -
Static method in class org.apache.maven.<A HREF="org/apache/maven/MavenUtils.html">MavenUtils</A>
<DD>Retrieve a user message.
<DT><A HREF="org/apache/maven/AbstractMavenComponent.html#getMessage(java.lang.String, java.lang.Object)"><B>getMessage(String, Object)</B></A> -
Method in class org.apache.maven.<A HREF="org/apache/maven/AbstractMavenComponent.html">AbstractMavenComponent</A>
<DD>&nbsp;
<DT><A HREF="org/apache/maven/project/Build.html#getNagEmailAddress()"><B>getNagEmailAddress()</B></A> -
Method in class org.apache.maven.project.<A HREF="org/apache/maven/project/Build.html">Build</A>
<DD>Get the nag email address.
<DT><A HREF="org/apache/maven/project/License.html#getName()"><B>getName()</B></A> -
Method in class org.apache.maven.project.<A HREF="org/apache/maven/project/License.html">License</A>
<DD>&nbsp;
<DT><A HREF="org/apache/maven/project/BaseObject.html#getName()"><B>getName()</B></A> -
Method in class org.apache.maven.project.<A HREF="org/apache/maven/project/BaseObject.html">BaseObject</A>
<DD>Gets the name attribute
<DT><A HREF="org/apache/maven/repository/Artifact.html#getName()"><B>getName()</B></A> -
Method in interface org.apache.maven.repository.<A HREF="org/apache/maven/repository/Artifact.html">Artifact</A>
<DD>Return the name of the artifact.
<DT><A HREF="org/apache/maven/repository/AbstractArtifact.html#getName()"><B>getName()</B></A> -
Method in class org.apache.maven.repository.<A HREF="org/apache/maven/repository/AbstractArtifact.html">AbstractArtifact</A>
<DD>Get the name of the artifact from the underlying dependency.
<DT><A HREF="org/apache/maven/jelly/MavenJellyContext.html#getOnline()"><B>getOnline()</B></A> -
Method in class org.apache.maven.jelly.<A HREF="org/apache/maven/jelly/MavenJellyContext.html">MavenJellyContext</A>
<DD>Get the online flag.
<DT><A HREF="org/apache/maven/jelly/tags/maven/WerkzDependencyResolver.html#getOrCreateGoal(org.apache.maven.project.Project, boolean)"><B>getOrCreateGoal(Project, boolean)</B></A> -
Method in class org.apache.maven.jelly.tags.maven.<A HREF="org/apache/maven/jelly/tags/maven/WerkzDependencyResolver.html">WerkzDependencyResolver</A>
<DD>Retrieves the existing goal for a project (based on Id).
<DT><A HREF="org/apache/maven/project/Project.html#getOrganization()"><B>getOrganization()</B></A> -
Method in class org.apache.maven.project.<A HREF="org/apache/maven/project/Project.html">Project</A>
<DD>Get the Project Organization.
<DT><A HREF="org/apache/maven/project/Contributor.html#getOrganization()"><B>getOrganization()</B></A> -
Method in class org.apache.maven.project.<A HREF="org/apache/maven/project/Contributor.html">Contributor</A>
<DD>Gets the organization attribute of the Contributor object
<DT><A HREF="org/apache/maven/project/Project.html#getPackage()"><B>getPackage()</B></A> -
Method in class org.apache.maven.project.<A HREF="org/apache/maven/project/Project.html">Project</A>
<DD>Gets the package attribute of the Project object.
<DT><A HREF="org/apache/maven/project/Project.html#getPackageGroups()"><B>getPackageGroups()</B></A> -
Method in class org.apache.maven.project.<A HREF="org/apache/maven/project/Project.html">Project</A>
<DD>Returns a list of PackageGroup instances used for documenting the
 packages
<DT><A HREF="org/apache/maven/project/PackageGroup.html#getPackages()"><B>getPackages()</B></A> -
Method in class org.apache.maven.project.<A HREF="org/apache/maven/project/PackageGroup.html">PackageGroup</A>
<DD>Returns the package patterns.
<DT><A HREF="org/apache/maven/repository/Artifact.html#getPath()"><B>getPath()</B></A> -
Method in interface org.apache.maven.repository.<A HREF="org/apache/maven/repository/Artifact.html">Artifact</A>
<DD>Return the path of the artifact using platform specific naming
 conventions.
<DT><A HREF="org/apache/maven/repository/AbstractArtifact.html#getPath()"><B>getPath()</B></A> -
Method in class org.apache.maven.repository.<A HREF="org/apache/maven/repository/AbstractArtifact.html">AbstractArtifact</A>
<DD>&nbsp;
<DT><A HREF="org/apache/maven/plugin/PluginCacheManager.html#getPluginCache()"><B>getPluginCache()</B></A> -
Method in class org.apache.maven.plugin.<A HREF="org/apache/maven/plugin/PluginCacheManager.html">PluginCacheManager</A>
<DD>&nbsp;
<DT><A HREF="org/apache/maven/project/Project.html#getPluginContext(java.lang.String)"><B>getPluginContext(String)</B></A> -
Method in class org.apache.maven.project.<A HREF="org/apache/maven/project/Project.html">Project</A>
<DD>Get the plugin context using the plugin name.
<DT><A HREF="org/apache/maven/project/Project.html#getPluginContexts()"><B>getPluginContexts()</B></A> -
Method in class org.apache.maven.project.<A HREF="org/apache/maven/project/Project.html">Project</A>
<DD>Get plugin context for this project.
<DT><A HREF="org/apache/maven/plugin/PluginCacheManager.html#getPluginDynaTagDepsCache()"><B>getPluginDynaTagDepsCache()</B></A> -
Method in class org.apache.maven.plugin.<A HREF="org/apache/maven/plugin/PluginCacheManager.html">PluginCacheManager</A>
<DD>Get the pluginDynaTagDepsCache attribute.
<DT><A HREF="org/apache/maven/MavenSession.html#getPluginManager()"><B>getPluginManager()</B></A> -
Method in class org.apache.maven.<A HREF="org/apache/maven/MavenSession.html">MavenSession</A>
<DD>&nbsp;
<DT><A HREF="org/apache/maven/plugin/PluginCacheManager.html#getPluginScript()"><B>getPluginScript()</B></A> -
Method in class org.apache.maven.plugin.<A HREF="org/apache/maven/plugin/PluginCacheManager.html">PluginCacheManager</A>
<DD>&nbsp;
<DT><A HREF="org/apache/maven/plugin/DefaultPluginCacheManager.html#getPluginScript()"><B>getPluginScript()</B></A> -
Method in class org.apache.maven.plugin.<A HREF="org/apache/maven/plugin/DefaultPluginCacheManager.html">DefaultPluginCacheManager</A>
<DD>&nbsp;
<DT><A HREF="org/apache/maven/plugin/PluginCacheManager.html#getPluginsDir()"><B>getPluginsDir()</B></A> -
Method in class org.apache.maven.plugin.<A HREF="org/apache/maven/plugin/PluginCacheManager.html">PluginCacheManager</A>
<DD>Get the pluginsDir attribute.
<DT><A HREF="org/apache/maven/plugin/DefaultPluginCacheManager.html#getPluginsDir()"><B>getPluginsDir()</B></A> -
Method in class org.apache.maven.plugin.<A HREF="org/apache/maven/plugin/DefaultPluginCacheManager.html">DefaultPluginCacheManager</A>
<DD>Get the pluginsDir attribute.
<DT><A HREF="org/apache/maven/project/Project.html#getPomVersion()"><B>getPomVersion()</B></A> -
Method in class org.apache.maven.project.<A HREF="org/apache/maven/project/Project.html">Project</A>
<DD>Gets the version attribute of the Project object.
<DT><A HREF="org/apache/maven/jelly/tags/maven/ReactorTag.html#getPostProcessing()"><B>getPostProcessing()</B></A> -
Method in class org.apache.maven.jelly.tags.maven.<A HREF="org/apache/maven/jelly/tags/maven/ReactorTag.html">ReactorTag</A>
<DD>Get the postProcessing attribute.
<DT><A HREF="org/apache/maven/MavenTool.html#getProject()"><B>getProject()</B></A> -
Method in class org.apache.maven.<A HREF="org/apache/maven/MavenTool.html">MavenTool</A>
<DD>Accessor for the project property.
<DT><A HREF="org/apache/maven/AbstractMavenComponent.html#getProject()"><B>getProject()</B></A> -
Method in class org.apache.maven.<A HREF="org/apache/maven/AbstractMavenComponent.html">AbstractMavenComponent</A>
<DD>&nbsp;
<DT><A HREF="org/apache/maven/jelly/MavenJellyContext.html#getProject()"><B>getProject()</B></A> -
Method in class org.apache.maven.jelly.<A HREF="org/apache/maven/jelly/MavenJellyContext.html">MavenJellyContext</A>
<DD>Get the maven project.
<DT><A HREF="org/apache/maven/jelly/tags/maven/SnapshotSignature.html#getProject()"><B>getProject()</B></A> -
Method in class org.apache.maven.jelly.tags.maven.<A HREF="org/apache/maven/jelly/tags/maven/SnapshotSignature.html">SnapshotSignature</A>
<DD>Get the maven project object.
<DT><A HREF="org/apache/maven/MavenUtils.html#getProject(java.io.File)"><B>getProject(File)</B></A> -
Static method in class org.apache.maven.<A HREF="org/apache/maven/MavenUtils.html">MavenUtils</A>
<DD>Create a Project object given a name a file descriptor.
<DT><A HREF="org/apache/maven/MavenUtils.html#getProject(java.io.File, org.apache.maven.jelly.MavenJellyContext)"><B>getProject(File, MavenJellyContext)</B></A> -
Static method in class org.apache.maven.<A HREF="org/apache/maven/MavenUtils.html">MavenUtils</A>
<DD>&nbsp;
<DT><A HREF="org/apache/maven/MavenUtils.html#getProject(java.io.File, org.apache.maven.jelly.MavenJellyContext, boolean)"><B>getProject(File, MavenJellyContext, boolean)</B></A> -
Static method in class org.apache.maven.<A HREF="org/apache/maven/MavenUtils.html">MavenUtils</A>
<DD>Create a Project object given a file descriptor and optionally a parent Jelly
 context.
<DT><A HREF="org/apache/maven/jelly/tags/maven/DependencyResolver.html#getProject(java.util.List, java.lang.String)"><B>getProject(List, String)</B></A> -
Static method in class org.apache.maven.jelly.tags.maven.<A HREF="org/apache/maven/jelly/tags/maven/DependencyResolver.html">DependencyResolver</A>
<DD>&nbsp;
<DT><A HREF="org/apache/maven/ant/MavenTask.html#getProjectBuildFile()"><B>getProjectBuildFile()</B></A> -
Method in class org.apache.maven.ant.<A HREF="org/apache/maven/ant/MavenTask.html">MavenTask</A>
<DD>Gets the value of projectBuildFile
<DT><A HREF="org/apache/maven/ant/MavenTask.html#getProjectFileName()"><B>getProjectFileName()</B></A> -
Method in class org.apache.maven.ant.<A HREF="org/apache/maven/ant/MavenTask.html">MavenTask</A>
<DD>Gets the value of projectFileName
<DT><A HREF="org/apache/maven/MavenUtils.html#getProjectInputStream(org.apache.maven.project.Project)"><B>getProjectInputStream(Project)</B></A> -
Static method in class org.apache.maven.<A HREF="org/apache/maven/MavenUtils.html">MavenUtils</A>
<DD>&nbsp;
<DT><A HREF="org/apache/maven/MavenUtils.html#getProjects(java.io.File, java.lang.String, org.apache.maven.jelly.MavenJellyContext)"><B>getProjects(File, String, MavenJellyContext)</B></A> -
Static method in class org.apache.maven.<A HREF="org/apache/maven/MavenUtils.html">MavenUtils</A>
<DD>This is currently used for the reactor but may be generally useful.
<DT><A HREF="org/apache/maven/MavenUtils.html#getProjects(java.io.File, java.lang.String, java.lang.String, org.apache.maven.jelly.MavenJellyContext)"><B>getProjects(File, String, String, MavenJellyContext)</B></A> -
Static method in class org.apache.maven.<A HREF="org/apache/maven/MavenUtils.html">MavenUtils</A>
<DD>This is currently used for the reactor but may be generally useful.
<DT><A HREF="org/apache/maven/jelly/tags/maven/WerkzDependencyResolver.html#getProjects(java.util.List, boolean)"><B>getProjects(List, boolean)</B></A> -
Method in class org.apache.maven.jelly.tags.maven.<A HREF="org/apache/maven/jelly/tags/maven/WerkzDependencyResolver.html">WerkzDependencyResolver</A>
<DD>Filters the given list of goals, and returns the associated projects

 If param:sourceBuild == true, include goal
 If param:sourceBuild == false, include goal if goal:sourceBuild == true
<DT><A HREF="org/apache/maven/MavenUtils.html#getProjectString(org.apache.maven.project.Project)"><B>getProjectString(Project)</B></A> -
Static method in class org.apache.maven.<A HREF="org/apache/maven/MavenUtils.html">MavenUtils</A>
<DD>Create an XML string from a project.
<DT><A HREF="org/apache/maven/jelly/JellyPropsHandler.html#getProperties()"><B>getProperties()</B></A> -
Method in class org.apache.maven.jelly.<A HREF="org/apache/maven/jelly/JellyPropsHandler.html">JellyPropsHandler</A>
<DD>Retrieve all ant properties.
<DT><A HREF="org/apache/maven/project/BaseObject.html#getProperties()"><B>getProperties()</B></A> -
Method in class org.apache.maven.project.<A HREF="org/apache/maven/project/BaseObject.html">BaseObject</A>
<DD>Get meta properties.
<DT><A HREF="org/apache/maven/project/SourceModification.html#getProperty()"><B>getProperty()</B></A> -
Method in class org.apache.maven.project.<A HREF="org/apache/maven/project/SourceModification.html">SourceModification</A>
<DD>Gets the property attribute of the SourceModification object
<DT><A HREF="org/apache/maven/jelly/JellyPropsHandler.html#getProperty(java.lang.String)"><B>getProperty(String)</B></A> -
Method in class org.apache.maven.jelly.<A HREF="org/apache/maven/jelly/JellyPropsHandler.html">JellyPropsHandler</A>
<DD>Retrieve an ant property.
<DT><A HREF="org/apache/maven/project/BaseObject.html#getProperty(java.lang.String)"><B>getProperty(String)</B></A> -
Method in class org.apache.maven.project.<A HREF="org/apache/maven/project/BaseObject.html">BaseObject</A>
<DD>Get a meta property.
<DT><A HREF="org/apache/maven/jelly/MavenJellyContext.html#getProxyHost()"><B>getProxyHost()</B></A> -
Method in class org.apache.maven.jelly.<A HREF="org/apache/maven/jelly/MavenJellyContext.html">MavenJellyContext</A>
<DD>Get the proxy host.
<DT><A HREF="org/apache/maven/jelly/MavenJellyContext.html#getProxyPassword()"><B>getProxyPassword()</B></A> -
Method in class org.apache.maven.jelly.<A HREF="org/apache/maven/jelly/MavenJellyContext.html">MavenJellyContext</A>
<DD>Get the proxy password.
<DT><A HREF="org/apache/maven/jelly/MavenJellyContext.html#getProxyPort()"><B>getProxyPort()</B></A> -
Method in class org.apache.maven.jelly.<A HREF="org/apache/maven/jelly/MavenJellyContext.html">MavenJellyContext</A>
<DD>Get the proxy port.
<DT><A HREF="org/apache/maven/jelly/MavenJellyContext.html#getProxyUserName()"><B>getProxyUserName()</B></A> -
Method in class org.apache.maven.jelly.<A HREF="org/apache/maven/jelly/MavenJellyContext.html">MavenJellyContext</A>
<DD>Get the proxy user name.
<DT><A HREF="org/apache/maven/jelly/tags/maven/ReactorTag.html#getReactorXml()"><B>getReactorXml()</B></A> -
Method in class org.apache.maven.jelly.tags.maven.<A HREF="org/apache/maven/jelly/tags/maven/ReactorTag.html">ReactorTag</A>
<DD>Get the reactorXml attribute.
<DT><A HREF="org/apache/maven/jelly/tags/maven/AddPathTag.html#getRefid()"><B>getRefid()</B></A> -
Method in class org.apache.maven.jelly.tags.maven.<A HREF="org/apache/maven/jelly/tags/maven/AddPathTag.html">AddPathTag</A>
<DD>Getter for the refid property
<DT><A HREF="org/apache/maven/DVSLPathTool.html#getRelativePath(java.lang.String)"><B>getRelativePath(String)</B></A> -
Static method in class org.apache.maven.<A HREF="org/apache/maven/DVSLPathTool.html">DVSLPathTool</A>
<DD>Determines the relative path of a filename.
<DT><A HREF="org/apache/maven/DVSLPathTool.html#getRelativePath(java.lang.String, java.lang.String)"><B>getRelativePath(String, String)</B></A> -
Static method in class org.apache.maven.<A HREF="org/apache/maven/DVSLPathTool.html">DVSLPathTool</A>
<DD>Determines the relative path of a filename from a base directory.
<DT><A HREF="org/apache/maven/jelly/MavenJellyContext.html#getRemoteRepositoryEnabled()"><B>getRemoteRepositoryEnabled()</B></A> -
Method in class org.apache.maven.jelly.<A HREF="org/apache/maven/jelly/MavenJellyContext.html">MavenJellyContext</A>
<DD>Set flag indicating if the remote repository is enabled for use.
<DT><A HREF="org/apache/maven/project/Project.html#getReports()"><B>getReports()</B></A> -
Method in class org.apache.maven.project.<A HREF="org/apache/maven/project/Project.html">Project</A>
<DD>Get the list of dependencies for this project.
<DT><A HREF="org/apache/maven/project/Project.html#getRepository()"><B>getRepository()</B></A> -
Method in class org.apache.maven.project.<A HREF="org/apache/maven/project/Project.html">Project</A>
<DD>Return the repository used by this project.
<DT><A HREF="org/apache/maven/project/UnitTest.html#getResources()"><B>getResources()</B></A> -
Method in class org.apache.maven.project.<A HREF="org/apache/maven/project/UnitTest.html">UnitTest</A>
<DD>Gets the resources.
<DT><A HREF="org/apache/maven/project/Build.html#getResources()"><B>getResources()</B></A> -
Method in class org.apache.maven.project.<A HREF="org/apache/maven/project/Build.html">Build</A>
<DD>Gets the resources.
<DT><A HREF="org/apache/maven/project/Contributor.html#getRoles()"><B>getRoles()</B></A> -
Method in class org.apache.maven.project.<A HREF="org/apache/maven/project/Contributor.html">Contributor</A>
<DD>Gets the sorted set of unique role attributes of the Contributor object.
<DT><A HREF="org/apache/maven/MavenSession.html#getRootContext()"><B>getRootContext()</B></A> -
Method in class org.apache.maven.<A HREF="org/apache/maven/MavenSession.html">MavenSession</A>
<DD>&nbsp;
<DT><A HREF="org/apache/maven/cli/App.html#getRootContext()"><B>getRootContext()</B></A> -
Method in class org.apache.maven.cli.<A HREF="org/apache/maven/cli/App.html">App</A>
<DD>Retrieve the Jelly rootContext.
<DT><A HREF="org/apache/maven/MavenSession.html#getRootDescriptorFile()"><B>getRootDescriptorFile()</B></A> -
Static method in class org.apache.maven.<A HREF="org/apache/maven/MavenSession.html">MavenSession</A>
<DD>&nbsp;
<DT><A HREF="org/apache/maven/MavenSession.html#getRootProject()"><B>getRootProject()</B></A> -
Method in class org.apache.maven.<A HREF="org/apache/maven/MavenSession.html">MavenSession</A>
<DD>&nbsp;
<DT><A HREF="org/apache/maven/project/Project.html#getShortDescription()"><B>getShortDescription()</B></A> -
Method in class org.apache.maven.project.<A HREF="org/apache/maven/project/Project.html">Project</A>
<DD>Get short description
<DT><A HREF="org/apache/maven/project/Project.html#getSiteAddress()"><B>getSiteAddress()</B></A> -
Method in class org.apache.maven.project.<A HREF="org/apache/maven/project/Project.html">Project</A>
<DD>Get the projects site address.
<DT><A HREF="org/apache/maven/project/Project.html#getSiteDirectory()"><B>getSiteDirectory()</B></A> -
Method in class org.apache.maven.project.<A HREF="org/apache/maven/project/Project.html">Project</A>
<DD>Get the project's site directory.
<DT><A HREF="org/apache/maven/jelly/tags/maven/WerkzDependencyResolver.html#getSortedDependencies(boolean)"><B>getSortedDependencies(boolean)</B></A> -
Method in class org.apache.maven.jelly.tags.maven.<A HREF="org/apache/maven/jelly/tags/maven/WerkzDependencyResolver.html">WerkzDependencyResolver</A>
<DD>&nbsp;
<DT><A HREF="org/apache/maven/jelly/tags/maven/GraphDependencyResolver.html#getSortedDependencies(boolean)"><B>getSortedDependencies(boolean)</B></A> -
Method in class org.apache.maven.jelly.tags.maven.<A HREF="org/apache/maven/jelly/tags/maven/GraphDependencyResolver.html">GraphDependencyResolver</A>
<DD>&nbsp;
<DT><A HREF="org/apache/maven/jelly/tags/maven/DependencyResolverInterface.html#getSortedDependencies(boolean)"><B>getSortedDependencies(boolean)</B></A> -
Method in interface org.apache.maven.jelly.tags.maven.<A HREF="org/apache/maven/jelly/tags/maven/DependencyResolverInterface.html">DependencyResolverInterface</A>
<DD>Get the list of projects in dependency sorted order.
<DT><A HREF="org/apache/maven/jelly/tags/maven/DependencyResolver.html#getSortedDependencies(boolean)"><B>getSortedDependencies(boolean)</B></A> -
Method in class org.apache.maven.jelly.tags.maven.<A HREF="org/apache/maven/jelly/tags/maven/DependencyResolver.html">DependencyResolver</A>
<DD>&nbsp;
<DT><A HREF="org/apache/maven/jelly/tags/maven/WerkzDependencyResolver.html#getSortedDependencies(org.apache.maven.project.Project)"><B>getSortedDependencies(Project)</B></A> -
Method in class org.apache.maven.jelly.tags.maven.<A HREF="org/apache/maven/jelly/tags/maven/WerkzDependencyResolver.html">WerkzDependencyResolver</A>
<DD>&nbsp;
<DT><A HREF="org/apache/maven/jelly/tags/maven/GraphDependencyResolver.html#getSortedDependencies(org.apache.maven.project.Project)"><B>getSortedDependencies(Project)</B></A> -
Method in class org.apache.maven.jelly.tags.maven.<A HREF="org/apache/maven/jelly/tags/maven/GraphDependencyResolver.html">GraphDependencyResolver</A>
<DD>&nbsp;
<DT><A HREF="org/apache/maven/jelly/tags/maven/DependencyResolverInterface.html#getSortedDependencies(org.apache.maven.project.Project)"><B>getSortedDependencies(Project)</B></A> -
Method in interface org.apache.maven.jelly.tags.maven.<A HREF="org/apache/maven/jelly/tags/maven/DependencyResolverInterface.html">DependencyResolverInterface</A>
<DD>Get the list of projects in dependency sorted order.
<DT><A HREF="org/apache/maven/jelly/tags/maven/DependencyResolver.html#getSortedDependencies(org.apache.maven.project.Project)"><B>getSortedDependencies(Project)</B></A> -
Method in class org.apache.maven.jelly.tags.maven.<A HREF="org/apache/maven/jelly/tags/maven/DependencyResolver.html">DependencyResolver</A>
<DD>&nbsp;
<DT><A HREF="org/apache/maven/jelly/tags/maven/WerkzDependencyResolver.html#getSortedDependencies(org.apache.maven.project.Project, boolean)"><B>getSortedDependencies(Project, boolean)</B></A> -
Method in class org.apache.maven.jelly.tags.maven.<A HREF="org/apache/maven/jelly/tags/maven/WerkzDependencyResolver.html">WerkzDependencyResolver</A>
<DD>&nbsp;
<DT><A HREF="org/apache/maven/jelly/tags/maven/GraphDependencyResolver.html#getSortedDependencies(org.apache.maven.project.Project, boolean)"><B>getSortedDependencies(Project, boolean)</B></A> -
Method in class org.apache.maven.jelly.tags.maven.<A HREF="org/apache/maven/jelly/tags/maven/GraphDependencyResolver.html">GraphDependencyResolver</A>
<DD>&nbsp;
<DT><A HREF="org/apache/maven/jelly/tags/maven/DependencyResolverInterface.html#getSortedDependencies(org.apache.maven.project.Project, boolean)"><B>getSortedDependencies(Project, boolean)</B></A> -
Method in interface org.apache.maven.jelly.tags.maven.<A HREF="org/apache/maven/jelly/tags/maven/DependencyResolverInterface.html">DependencyResolverInterface</A>
<DD>Get the list of projects in dependency sorted order.
<DT><A HREF="org/apache/maven/jelly/tags/maven/DependencyResolver.html#getSortedDependencies(org.apache.maven.project.Project, boolean)"><B>getSortedDependencies(Project, boolean)</B></A> -
Method in class org.apache.maven.jelly.tags.maven.<A HREF="org/apache/maven/jelly/tags/maven/DependencyResolver.html">DependencyResolver</A>
<DD>&nbsp;
<DT><A HREF="org/apache/maven/project/Build.html#getSourceDirectory()"><B>getSourceDirectory()</B></A> -
Method in class org.apache.maven.project.<A HREF="org/apache/maven/project/Build.html">Build</A>
<DD>Gets the sourceDirectories attribute of the Build object
<DT><A HREF="org/apache/maven/project/Build.html#getSourceModifications()"><B>getSourceModifications()</B></A> -
Method in class org.apache.maven.project.<A HREF="org/apache/maven/project/Build.html">Build</A>
<DD>Get the source modifications.
<DT><A HREF="org/apache/maven/project/MailingList.html#getSubscribe()"><B>getSubscribe()</B></A> -
Method in class org.apache.maven.project.<A HREF="org/apache/maven/project/MailingList.html">MailingList</A>
<DD>Gets the subscribe attribute of the MailingList object
<DT><A HREF="org/apache/maven/project/Version.html#getTag()"><B>getTag()</B></A> -
Method in class org.apache.maven.project.<A HREF="org/apache/maven/project/Version.html">Version</A>
<DD>Gets the tag attribute of the Distribution object
<DT><A HREF="org/apache/maven/jelly/tags/jeez/TagDefTag.html#getTagLibrary()"><B>getTagLibrary()</B></A> -
Method in class org.apache.maven.jelly.tags.jeez.<A HREF="org/apache/maven/jelly/tags/jeez/TagDefTag.html">TagDefTag</A>
<DD>&nbsp;
<DT><A HREF="org/apache/maven/jelly/MavenJellyContext.html#getTagLibrary(java.lang.String)"><B>getTagLibrary(String)</B></A> -
Method in class org.apache.maven.jelly.<A HREF="org/apache/maven/jelly/MavenJellyContext.html">MavenJellyContext</A>
<DD>Retrieve a registered <code>TagLibrary</code> by namespace URI.
<DT><A HREF="org/apache/maven/project/Resource.html#getTargetPath()"><B>getTargetPath()</B></A> -
Method in class org.apache.maven.project.<A HREF="org/apache/maven/project/Resource.html">Resource</A>
<DD>Get the directory where resources are placed
<DT><A HREF="org/apache/maven/project/PackageGroup.html#getTitle()"><B>getTitle()</B></A> -
Method in class org.apache.maven.project.<A HREF="org/apache/maven/project/PackageGroup.html">PackageGroup</A>
<DD>Returns the title of this package group.
<DT><A HREF="org/apache/maven/ant/MavenTask.html#getToolsJar()"><B>getToolsJar()</B></A> -
Method in class org.apache.maven.ant.<A HREF="org/apache/maven/ant/MavenTask.html">MavenTask</A>
<DD>Gets the value of toolsJar
<DT><A HREF="org/apache/maven/project/Dependency.html#getType()"><B>getType()</B></A> -
Method in class org.apache.maven.project.<A HREF="org/apache/maven/project/Dependency.html">Dependency</A>
<DD>Set the type of the dependency.
<DT><A HREF="org/apache/maven/project/Build.html#getUnitTest()"><B>getUnitTest()</B></A> -
Method in class org.apache.maven.project.<A HREF="org/apache/maven/project/Build.html">Build</A>
<DD>Retrieve the unit test patterns.
<DT><A HREF="org/apache/maven/project/Build.html#getUnitTestSourceDirectory()"><B>getUnitTestSourceDirectory()</B></A> -
Method in class org.apache.maven.project.<A HREF="org/apache/maven/project/Build.html">Build</A>
<DD>Get the unit test source directory.
<DT><A HREF="org/apache/maven/project/MailingList.html#getUnsubscribe()"><B>getUnsubscribe()</B></A> -
Method in class org.apache.maven.project.<A HREF="org/apache/maven/project/MailingList.html">MailingList</A>
<DD>Gets the unsubscribe attribute of the MailingList object
<DT><A HREF="org/apache/maven/project/Repository.html#getUrl()"><B>getUrl()</B></A> -
Method in class org.apache.maven.project.<A HREF="org/apache/maven/project/Repository.html">Repository</A>
<DD>Gets the url attribute of the Repository object
<DT><A HREF="org/apache/maven/project/Project.html#getUrl()"><B>getUrl()</B></A> -
Method in class org.apache.maven.project.<A HREF="org/apache/maven/project/Project.html">Project</A>
<DD>Set the URL to this project's main page.
<DT><A HREF="org/apache/maven/project/Organization.html#getUrl()"><B>getUrl()</B></A> -
Method in class org.apache.maven.project.<A HREF="org/apache/maven/project/Organization.html">Organization</A>
<DD>Gets the organization URL.
<DT><A HREF="org/apache/maven/project/License.html#getUrl()"><B>getUrl()</B></A> -
Method in class org.apache.maven.project.<A HREF="org/apache/maven/project/License.html">License</A>
<DD>&nbsp;
<DT><A HREF="org/apache/maven/project/Dependency.html#getUrl()"><B>getUrl()</B></A> -
Method in class org.apache.maven.project.<A HREF="org/apache/maven/project/Dependency.html">Dependency</A>
<DD>Get the name of the url for the dependency.
<DT><A HREF="org/apache/maven/project/Contributor.html#getUrl()"><B>getUrl()</B></A> -
Method in class org.apache.maven.project.<A HREF="org/apache/maven/project/Contributor.html">Contributor</A>
<DD>Gets the homepage url of the Contributor object.
<DT><A HREF="org/apache/maven/repository/PluginArtifact.html#getUrlPath()"><B>getUrlPath()</B></A> -
Method in class org.apache.maven.repository.<A HREF="org/apache/maven/repository/PluginArtifact.html">PluginArtifact</A>
<DD>&nbsp;
<DT><A HREF="org/apache/maven/repository/Artifact.html#getUrlPath()"><B>getUrlPath()</B></A> -
Method in interface org.apache.maven.repository.<A HREF="org/apache/maven/repository/Artifact.html">Artifact</A>
<DD>Return an URL path that is platform agnostic.
<DT><A HREF="org/apache/maven/repository/AbstractArtifact.html#getUrlPath()"><B>getUrlPath()</B></A> -
Method in class org.apache.maven.repository.<A HREF="org/apache/maven/repository/AbstractArtifact.html">AbstractArtifact</A>
<DD>&nbsp;
<DT><A HREF="org/apache/maven/jelly/MavenJellyContext.html#getVariable(java.lang.String)"><B>getVariable(String)</B></A> -
Method in class org.apache.maven.jelly.<A HREF="org/apache/maven/jelly/MavenJellyContext.html">MavenJellyContext</A>
<DD>Retrieve a variable.
<DT><A HREF="org/apache/maven/project/Dependency.html#getVersion()"><B>getVersion()</B></A> -
Method in class org.apache.maven.project.<A HREF="org/apache/maven/project/Dependency.html">Dependency</A>
<DD>Get the version of this dependency.
<DT><A HREF="org/apache/maven/project/Project.html#getVersionById(java.lang.String)"><B>getVersionById(String)</B></A> -
Method in class org.apache.maven.project.<A HREF="org/apache/maven/project/Project.html">Project</A>
<DD>Return a distribution for this project.
<DT><A HREF="org/apache/maven/project/Project.html#getVersions()"><B>getVersions()</B></A> -
Method in class org.apache.maven.project.<A HREF="org/apache/maven/project/Project.html">Project</A>
<DD>Return the distributions for this project.
<DT><A HREF="org/apache/maven/jelly/MavenJellyContext.html#getWerkzProject()"><B>getWerkzProject()</B></A> -
Method in class org.apache.maven.jelly.<A HREF="org/apache/maven/jelly/MavenJellyContext.html">MavenJellyContext</A>
<DD>retrieve the werkz project object
<DT><A HREF="org/apache/maven/MavenUtils.html#getXMLIntrospector()"><B>getXMLIntrospector()</B></A> -
Static method in class org.apache.maven.<A HREF="org/apache/maven/MavenUtils.html">MavenUtils</A>
<DD>If caching is enabled then this method will return a pooled introspector
<DT><A HREF="org/apache/maven/jelly/MavenJellyContext.html#getXMLOutput()"><B>getXMLOutput()</B></A> -
Method in class org.apache.maven.jelly.<A HREF="org/apache/maven/jelly/MavenJellyContext.html">MavenJellyContext</A>
<DD>Get the jelly output sink.
<DT><A HREF="org/apache/maven/MavenUtils.html#getXMLReader()"><B>getXMLReader()</B></A> -
Static method in class org.apache.maven.<A HREF="org/apache/maven/MavenUtils.html">MavenUtils</A>
<DD>Get the XMLReader to use for processing XML related resources.
<DT><A HREF="org/apache/maven/plugin/PluginCacheManager.html#GOALS_CACHE"><B>GOALS_CACHE</B></A> -
Static variable in class org.apache.maven.plugin.<A HREF="org/apache/maven/plugin/PluginCacheManager.html">PluginCacheManager</A>
<DD>Goal cache
<DT><A HREF="org/apache/maven/jelly/tags/maven/GraphDependencyResolver.html"><B>GraphDependencyResolver</B></A> - class org.apache.maven.jelly.tags.maven.<A HREF="org/apache/maven/jelly/tags/maven/GraphDependencyResolver.html">GraphDependencyResolver</A>.<DD>Takes a list of maven projects and determines the overall
  dependency ordering among the project.<DT><A HREF="org/apache/maven/jelly/tags/maven/GraphDependencyResolver.html#GraphDependencyResolver()"><B>GraphDependencyResolver()</B></A> -
Constructor for class org.apache.maven.jelly.tags.maven.<A HREF="org/apache/maven/jelly/tags/maven/GraphDependencyResolver.html">GraphDependencyResolver</A>
<DD>Default constructor.
</DL>
<HR>
<A NAME="_H_"><!-- --></A><H2>
<B>H</B></H2>
<DL>
<DT><A HREF="org/apache/maven/project/BaseObject.html#hashCode()"><B>hashCode()</B></A> -
Method in class org.apache.maven.project.<A HREF="org/apache/maven/project/BaseObject.html">BaseObject</A>
<DD>Provides the hashCode of this object, which is determined by simply
 delegating the responsibility to the name property
<DT><A HREF="org/apache/maven/project/Project.html#hasParent()"><B>hasParent()</B></A> -
Method in class org.apache.maven.project.<A HREF="org/apache/maven/project/Project.html">Project</A>
<DD>Determine whether this project has a parent.
<DT><A HREF="org/apache/maven/project/Project.html#hasRepository()"><B>hasRepository()</B></A> -
Method in class org.apache.maven.project.<A HREF="org/apache/maven/project/Project.html">Project</A>
<DD>Get flag to indicate the presence of a source repository.
<DT><A HREF="org/apache/maven/MavenConstants.html#HOME"><B>HOME</B></A> -
Static variable in class org.apache.maven.<A HREF="org/apache/maven/MavenConstants.html">MavenConstants</A>
<DD>MavenSession home tag.
<DT><A HREF="org/apache/maven/util/HttpUtils.html"><B>HttpUtils</B></A> - class org.apache.maven.util.<A HREF="org/apache/maven/util/HttpUtils.html">HttpUtils</A>.<DD>Http utils for retrieving files.<DT><A HREF="org/apache/maven/util/HttpUtils.html#HttpUtils()"><B>HttpUtils()</B></A> -
Constructor for class org.apache.maven.util.<A HREF="org/apache/maven/util/HttpUtils.html">HttpUtils</A>
<DD>&nbsp;
</DL>
<HR>
<A NAME="_I_"><!-- --></A><H2>
<B>I</B></H2>
<DL>
<DT><A HREF="org/apache/maven/project/BaseObject.html#id"><B>id</B></A> -
Variable in class org.apache.maven.project.<A HREF="org/apache/maven/project/BaseObject.html">BaseObject</A>
<DD>Id to use for this object.
<DT><A HREF="org/apache/maven/MavenSession.html#initialize()"><B>initialize()</B></A> -
Method in class org.apache.maven.<A HREF="org/apache/maven/MavenSession.html">MavenSession</A>
<DD>Perform pre-build initialization.
<DT><A HREF="org/apache/maven/plugin/PluginManager.html#initialize()"><B>initialize()</B></A> -
Method in class org.apache.maven.plugin.<A HREF="org/apache/maven/plugin/PluginManager.html">PluginManager</A>
<DD>Initialize all plugins.
<DT><A HREF="org/apache/maven/plugin/DefaultPluginManager.html#initialize()"><B>initialize()</B></A> -
Method in class org.apache.maven.plugin.<A HREF="org/apache/maven/plugin/DefaultPluginManager.html">DefaultPluginManager</A>
<DD>Initialize all plugins.
<DT><A HREF="org/apache/maven/project/Project.html#initialize()"><B>initialize()</B></A> -
Method in class org.apache.maven.project.<A HREF="org/apache/maven/project/Project.html">Project</A>
<DD>Initialize the project.
<DT><A HREF="org/apache/maven/cli/App.html#initialize(java.lang.String[])"><B>initialize(String[])</B></A> -
Method in class org.apache.maven.cli.<A HREF="org/apache/maven/cli/App.html">App</A>
<DD>Perform initialization.
<DT><A HREF="org/apache/maven/cli/App.html#initializeRootContext()"><B>initializeRootContext()</B></A> -
Method in class org.apache.maven.cli.<A HREF="org/apache/maven/cli/App.html">App</A>
<DD>Initialize the IO streams.
<DT><A HREF="org/apache/maven/cli/App.html#initializeSystemProperties()"><B>initializeSystemProperties()</B></A> -
Method in class org.apache.maven.cli.<A HREF="org/apache/maven/cli/App.html">App</A>
<DD>Setup any system properties that have been specified on
 the CLI.
<DT><A HREF="org/apache/maven/jelly/tags/maven/InputTag.html"><B>InputTag</B></A> - class org.apache.maven.jelly.tags.maven.<A HREF="org/apache/maven/jelly/tags/maven/InputTag.html">InputTag</A>.<DD>Concat a set of files together into a single file.<DT><A HREF="org/apache/maven/jelly/tags/maven/InputTag.html#InputTag()"><B>InputTag()</B></A> -
Constructor for class org.apache.maven.jelly.tags.maven.<A HREF="org/apache/maven/jelly/tags/maven/InputTag.html">InputTag</A>
<DD>&nbsp;
<DT><A HREF="org/apache/maven/MavenUtils.html#integrateMapInContext(java.util.Map, org.apache.maven.jelly.MavenJellyContext)"><B>integrateMapInContext(Map, MavenJellyContext)</B></A> -
Static method in class org.apache.maven.<A HREF="org/apache/maven/MavenUtils.html">MavenUtils</A>
<DD>Integrate a Map of key:value pairs into a <code>MavenJellyContext</code>.
<DT><A HREF="org/apache/maven/jelly/JellyBuildListener.html#isDebug()"><B>isDebug()</B></A> -
Method in class org.apache.maven.jelly.<A HREF="org/apache/maven/jelly/JellyBuildListener.html">JellyBuildListener</A>
<DD>&nbsp;
<DT><A HREF="org/apache/maven/jelly/JellyBuildListener.html#isDebug(boolean)"><B>isDebug(boolean)</B></A> -
Method in class org.apache.maven.jelly.<A HREF="org/apache/maven/jelly/JellyBuildListener.html">JellyBuildListener</A>
<DD>&nbsp;
<DT><A HREF="org/apache/maven/verifier/DependencyVerifier.html#isIgnoreErrors()"><B>isIgnoreErrors()</B></A> -
Method in class org.apache.maven.verifier.<A HREF="org/apache/maven/verifier/DependencyVerifier.html">DependencyVerifier</A>
<DD>&nbsp;
<DT><A HREF="org/apache/maven/jelly/tags/maven/MavenTag.html#isIgnoreFailures()"><B>isIgnoreFailures()</B></A> -
Method in class org.apache.maven.jelly.tags.maven.<A HREF="org/apache/maven/jelly/tags/maven/MavenTag.html">MavenTag</A>
<DD>Get the ignore failures flag.
<DT><A HREF="org/apache/maven/project/Project.html#isPomCurrent()"><B>isPomCurrent()</B></A> -
Method in class org.apache.maven.project.<A HREF="org/apache/maven/project/Project.html">Project</A>
<DD>Indicate whether the POM is of the latest version.
<DT><A HREF="org/apache/maven/repository/Artifact.html#isSnapshot()"><B>isSnapshot()</B></A> -
Method in interface org.apache.maven.repository.<A HREF="org/apache/maven/repository/Artifact.html">Artifact</A>
<DD>Boolean flag indicating whether this artifact is a snapshot.
<DT><A HREF="org/apache/maven/repository/AbstractArtifact.html#isSnapshot()"><B>isSnapshot()</B></A> -
Method in class org.apache.maven.repository.<A HREF="org/apache/maven/repository/AbstractArtifact.html">AbstractArtifact</A>
<DD>&nbsp;
<DT><A HREF="org/apache/maven/jelly/MavenExpressionFactory.html#isSupportAntVariables()"><B>isSupportAntVariables()</B></A> -
Method in class org.apache.maven.jelly.<A HREF="org/apache/maven/jelly/MavenExpressionFactory.html">MavenExpressionFactory</A>
<DD>&nbsp;
<DT><A HREF="org/apache/maven/project/BaseObject.html#isValid(java.lang.String)"><B>isValid(String)</B></A> -
Method in class org.apache.maven.project.<A HREF="org/apache/maven/project/BaseObject.html">BaseObject</A>
<DD>Simple check for a value in the POM.
<DT><A HREF="org/apache/maven/jelly/MavenExpressionFactory.html#isValidAntVariableName(java.lang.String)"><B>isValidAntVariableName(String)</B></A> -
Method in class org.apache.maven.jelly.<A HREF="org/apache/maven/jelly/MavenExpressionFactory.html">MavenExpressionFactory</A>
<DD>Determine if a variable name is a valid ant variable name.
</DL>
<HR>
<A NAME="_J_"><!-- --></A><H2>
<B>J</B></H2>
<DL>
<DT><A HREF="org/apache/maven/project/Jar.html"><B>Jar</B></A> - class org.apache.maven.project.<A HREF="org/apache/maven/project/Jar.html">Jar</A>.<DD>A Jar as specified in the project descriptor<DT><A HREF="org/apache/maven/MavenConstants.html#JAR_OVERRIDE"><B>JAR_OVERRIDE</B></A> -
Static variable in class org.apache.maven.<A HREF="org/apache/maven/MavenConstants.html">MavenConstants</A>
<DD>Jar Override tag.
<DT><A HREF="org/apache/maven/MavenConstants.html#JAR_OVERRIDE_PROPERTY"><B>JAR_OVERRIDE_PROPERTY</B></A> -
Static variable in class org.apache.maven.<A HREF="org/apache/maven/MavenConstants.html">MavenConstants</A>
<DD>Jar Override property tag.
<DT><A HREF="org/apache/maven/project/Jar.html#Jar()"><B>Jar()</B></A> -
Constructor for class org.apache.maven.project.<A HREF="org/apache/maven/project/Jar.html">Jar</A>
<DD>Create an instance of this class
<DT><A HREF="org/apache/maven/jelly/tags/jeez/JeezTagLibrary.html"><B>JeezTagLibrary</B></A> - class org.apache.maven.jelly.tags.jeez.<A HREF="org/apache/maven/jelly/tags/jeez/JeezTagLibrary.html">JeezTagLibrary</A>.<DD>Convenience taglib that puts jelly:core, jelly:werkz and jelly:ant
  into a single namespace.<DT><A HREF="org/apache/maven/jelly/tags/jeez/JeezTagLibrary.html#JeezTagLibrary()"><B>JeezTagLibrary()</B></A> -
Constructor for class org.apache.maven.jelly.tags.jeez.<A HREF="org/apache/maven/jelly/tags/jeez/JeezTagLibrary.html">JeezTagLibrary</A>
<DD>&nbsp;
<DT><A HREF="org/apache/maven/jelly/JellyBuildListener.html"><B>JellyBuildListener</B></A> - class org.apache.maven.jelly.<A HREF="org/apache/maven/jelly/JellyBuildListener.html">JellyBuildListener</A>.<DD>&nbsp;<DT><A HREF="org/apache/maven/jelly/JellyBuildListener.html#JellyBuildListener(org.apache.commons.jelly.XMLOutput)"><B>JellyBuildListener(XMLOutput)</B></A> -
Constructor for class org.apache.maven.jelly.<A HREF="org/apache/maven/jelly/JellyBuildListener.html">JellyBuildListener</A>
<DD>&nbsp;
<DT><A HREF="org/apache/maven/jelly/JellyPropsHandler.html"><B>JellyPropsHandler</B></A> - class org.apache.maven.jelly.<A HREF="org/apache/maven/jelly/JellyPropsHandler.html">JellyPropsHandler</A>.<DD>Implementation of a Commons Grant <code>propsHandler</code> to resolve
 through Jelly's context.<DT><A HREF="org/apache/maven/jelly/JellyPropsHandler.html#JellyPropsHandler(org.apache.commons.jelly.JellyContext)"><B>JellyPropsHandler(JellyContext)</B></A> -
Constructor for class org.apache.maven.jelly.<A HREF="org/apache/maven/jelly/JellyPropsHandler.html">JellyPropsHandler</A>
<DD>Simple constructor with the context to be used.
<DT><A HREF="org/apache/maven/jelly/JellyUtils.html"><B>JellyUtils</B></A> - class org.apache.maven.jelly.<A HREF="org/apache/maven/jelly/JellyUtils.html">JellyUtils</A>.<DD>Utilities for Jelly.<DT><A HREF="org/apache/maven/jelly/JellyUtils.html#JellyUtils()"><B>JellyUtils()</B></A> -
Constructor for class org.apache.maven.jelly.<A HREF="org/apache/maven/jelly/JellyUtils.html">JellyUtils</A>
<DD>&nbsp;
</DL>
<HR>
<A NAME="_L_"><!-- --></A><H2>
<B>L</B></H2>
<DL>
<DT><A HREF="org/apache/maven/jelly/tags/werkz/LazyAttainGoalTag.html"><B>LazyAttainGoalTag</B></A> - class org.apache.maven.jelly.tags.werkz.<A HREF="org/apache/maven/jelly/tags/werkz/LazyAttainGoalTag.html">LazyAttainGoalTag</A>.<DD>Replacement for werkz's <code>AttainGoalTag</code> which accounts
  for lazily loading plugin scripts through the <code>PluginManager</code>.<DT><A HREF="org/apache/maven/jelly/tags/werkz/LazyAttainGoalTag.html#LazyAttainGoalTag()"><B>LazyAttainGoalTag()</B></A> -
Constructor for class org.apache.maven.jelly.tags.werkz.<A HREF="org/apache/maven/jelly/tags/werkz/LazyAttainGoalTag.html">LazyAttainGoalTag</A>
<DD>Construct.
<DT><A HREF="org/apache/maven/project/Project.html#legacyToStandardId(java.lang.String)"><B>legacyToStandardId(String)</B></A> -
Static method in class org.apache.maven.project.<A HREF="org/apache/maven/project/Project.html">Project</A>
<DD>This is to support methods that are using the legacy form of
 the project id.
<DT><A HREF="org/apache/maven/project/License.html"><B>License</B></A> - class org.apache.maven.project.<A HREF="org/apache/maven/project/License.html">License</A>.<DD>A License as specified in the project descriptor<DT><A HREF="org/apache/maven/project/License.html#License()"><B>License()</B></A> -
Constructor for class org.apache.maven.project.<A HREF="org/apache/maven/project/License.html">License</A>
<DD>&nbsp;
<DT><A HREF="org/apache/maven/project/Project.html#loadJellyScript(java.io.File)"><B>loadJellyScript(File)</B></A> -
Method in class org.apache.maven.project.<A HREF="org/apache/maven/project/Project.html">Project</A>
<DD>Load a Jelly script for this project.
<DT><A HREF="org/apache/maven/MavenSession.html#loadJellyScript(java.io.File, org.apache.maven.project.Project)"><B>loadJellyScript(File, Project)</B></A> -
Method in class org.apache.maven.<A HREF="org/apache/maven/MavenSession.html">MavenSession</A>
<DD>Load a jelly script for a project.
<DT><A HREF="org/apache/maven/plugin/PluginManager.html#loadJellyScript(java.io.File, org.apache.maven.project.Project)"><B>loadJellyScript(File, Project)</B></A> -
Method in class org.apache.maven.plugin.<A HREF="org/apache/maven/plugin/PluginManager.html">PluginManager</A>
<DD>Load a user jelly script.
<DT><A HREF="org/apache/maven/plugin/DefaultPluginManager.html#loadJellyScript(java.io.File, org.apache.maven.project.Project)"><B>loadJellyScript(File, Project)</B></A> -
Method in class org.apache.maven.plugin.<A HREF="org/apache/maven/plugin/DefaultPluginManager.html">DefaultPluginManager</A>
<DD>Load a user jelly script.
<DT><A HREF="org/apache/maven/verifier/LocalSettingsVerifier.html"><B>LocalSettingsVerifier</B></A> - class org.apache.maven.verifier.<A HREF="org/apache/maven/verifier/LocalSettingsVerifier.html">LocalSettingsVerifier</A>.<DD>Verify the integrity of the local repository.<DT><A HREF="org/apache/maven/verifier/LocalSettingsVerifier.html#LocalSettingsVerifier(org.apache.maven.project.Project)"><B>LocalSettingsVerifier(Project)</B></A> -
Constructor for class org.apache.maven.verifier.<A HREF="org/apache/maven/verifier/LocalSettingsVerifier.html">LocalSettingsVerifier</A>
<DD>Default constructor.
</DL>
<HR>
<A NAME="_M_"><!-- --></A><H2>
<B>M</B></H2>
<DL>
<DT><A HREF="org/apache/maven/project/MailingList.html"><B>MailingList</B></A> - class org.apache.maven.project.<A HREF="org/apache/maven/project/MailingList.html">MailingList</A>.<DD>&nbsp;<DT><A HREF="org/apache/maven/project/MailingList.html#MailingList()"><B>MailingList()</B></A> -
Constructor for class org.apache.maven.project.<A HREF="org/apache/maven/project/MailingList.html">MailingList</A>
<DD>Constructor for the MailingList object
<DT><A HREF="org/apache/maven/cli/App.html#main(java.lang.String[])"><B>main(String[])</B></A> -
Static method in class org.apache.maven.cli.<A HREF="org/apache/maven/cli/App.html">App</A>
<DD>Main CLI entry point for MavenSession.
<DT><A HREF="org/apache/maven/util/CaseInsensitiveGlobPatternMapper.html#mapFileName(java.lang.String)"><B>mapFileName(String)</B></A> -
Method in class org.apache.maven.util.<A HREF="org/apache/maven/util/CaseInsensitiveGlobPatternMapper.html">CaseInsensitiveGlobPatternMapper</A>
<DD>Returns null if the source file name doesn't match the
 &quot;from&quot; pattern, an one-element array containing the
 translated file otherwise.
<DT><A HREF="org/apache/maven/util/StringInputStream.html#mark(int)"><B>mark(int)</B></A> -
Method in class org.apache.maven.util.<A HREF="org/apache/maven/util/StringInputStream.html">StringInputStream</A>
<DD>Marks the read limit of the StringReader.
<DT><A HREF="org/apache/maven/util/StringInputStream.html#markSupported()"><B>markSupported()</B></A> -
Method in class org.apache.maven.util.<A HREF="org/apache/maven/util/StringInputStream.html">StringInputStream</A>
<DD>&nbsp;
<DT><A HREF="org/apache/maven/MavenConstants.html#MAVEN_ANT_PROJECT"><B>MAVEN_ANT_PROJECT</B></A> -
Static variable in class org.apache.maven.<A HREF="org/apache/maven/MavenConstants.html">MavenConstants</A>
<DD>MavenSession ant project context tag
<DT><A HREF="org/apache/maven/MavenConstants.html#MAVEN_BUILD_FILE_URL"><B>MAVEN_BUILD_FILE_URL</B></A> -
Static variable in class org.apache.maven.<A HREF="org/apache/maven/MavenConstants.html">MavenConstants</A>
<DD>MavenSession build file url context tag
<DT><A HREF="org/apache/maven/MavenConstants.html#MAVEN_GOALS"><B>MAVEN_GOALS</B></A> -
Static variable in class org.apache.maven.<A HREF="org/apache/maven/MavenConstants.html">MavenConstants</A>
<DD>MavenSession goals context tag
<DT><A HREF="org/apache/maven/MavenConstants.html#MAVEN_HOME"><B>MAVEN_HOME</B></A> -
Static variable in class org.apache.maven.<A HREF="org/apache/maven/MavenConstants.html">MavenConstants</A>
<DD>MavenSession home context tag
<DT><A HREF="org/apache/maven/MavenConstants.html#MAVEN_POM"><B>MAVEN_POM</B></A> -
Static variable in class org.apache.maven.<A HREF="org/apache/maven/MavenConstants.html">MavenConstants</A>
<DD>MavenSession POM context tag
<DT><A HREF="org/apache/maven/MavenConstants.html#MAVEN_PROJECT_VERIFIER"><B>MAVEN_PROJECT_VERIFIER</B></A> -
Static variable in class org.apache.maven.<A HREF="org/apache/maven/MavenConstants.html">MavenConstants</A>
<DD>MavenSession project verifier context tag
<DT><A HREF="org/apache/maven/MavenConstants.html#MAVEN_VERSION"><B>MAVEN_VERSION</B></A> -
Static variable in class org.apache.maven.<A HREF="org/apache/maven/MavenConstants.html">MavenConstants</A>
<DD>This is an internal version for MavenSession self updating
 procedures.
<DT><A HREF="org/apache/maven/MavenConstants.html"><B>MavenConstants</B></A> - class org.apache.maven.<A HREF="org/apache/maven/MavenConstants.html">MavenConstants</A>.<DD>MavenSession constants.<DT><A HREF="org/apache/maven/MavenConstants.html#MavenConstants()"><B>MavenConstants()</B></A> -
Constructor for class org.apache.maven.<A HREF="org/apache/maven/MavenConstants.html">MavenConstants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/maven/MavenException.html"><B>MavenException</B></A> - exception org.apache.maven.<A HREF="org/apache/maven/MavenException.html">MavenException</A>.<DD>The base class for all exceptions thrown by MavenSession.<DT><A HREF="org/apache/maven/MavenException.html#MavenException()"><B>MavenException()</B></A> -
Constructor for class org.apache.maven.<A HREF="org/apache/maven/MavenException.html">MavenException</A>
<DD>Creates a new instance of <code>MavenException</code> without detail
 message.
<DT><A HREF="org/apache/maven/MavenException.html#MavenException(java.lang.String)"><B>MavenException(String)</B></A> -
Constructor for class org.apache.maven.<A HREF="org/apache/maven/MavenException.html">MavenException</A>
<DD>Constructs an instance of <code>MavenException</code> with the specified
 detail message.
<DT><A HREF="org/apache/maven/MavenException.html#MavenException(java.lang.String, java.lang.Throwable)"><B>MavenException(String, Throwable)</B></A> -
Constructor for class org.apache.maven.<A HREF="org/apache/maven/MavenException.html">MavenException</A>
<DD>Constructs an exception with the given message and exception as
 a root cause.
<DT><A HREF="org/apache/maven/MavenException.html#MavenException(java.lang.Throwable)"><B>MavenException(Throwable)</B></A> -
Constructor for class org.apache.maven.<A HREF="org/apache/maven/MavenException.html">MavenException</A>
<DD>Constructs an exception with the given exception as a root cause.
<DT><A HREF="org/apache/maven/jelly/MavenExpressionFactory.html"><B>MavenExpressionFactory</B></A> - class org.apache.maven.jelly.<A HREF="org/apache/maven/jelly/MavenExpressionFactory.html">MavenExpressionFactory</A>.<DD>Represents a factory of <a href="http://commons.apache.org/jexl/">
 Jexl</a> expression which fully supports the Expression Language in JSTL and
 JSP.<DT><A HREF="org/apache/maven/jelly/MavenExpressionFactory.html#MavenExpressionFactory()"><B>MavenExpressionFactory()</B></A> -
Constructor for class org.apache.maven.jelly.<A HREF="org/apache/maven/jelly/MavenExpressionFactory.html">MavenExpressionFactory</A>
<DD>&nbsp;
<DT><A HREF="org/apache/maven/jelly/tags/jeez/MavenJeezTagLibrary.html"><B>MavenJeezTagLibrary</B></A> - class org.apache.maven.jelly.tags.jeez.<A HREF="org/apache/maven/jelly/tags/jeez/MavenJeezTagLibrary.html">MavenJeezTagLibrary</A>.<DD>Replacement for Jelly's <code>JeezTagLibrary</code> which uses
  <code>LazyAttainGoalTag</code> to perform lazy plugin initialization.<DT><A HREF="org/apache/maven/jelly/tags/jeez/MavenJeezTagLibrary.html#MavenJeezTagLibrary()"><B>MavenJeezTagLibrary()</B></A> -
Constructor for class org.apache.maven.jelly.tags.jeez.<A HREF="org/apache/maven/jelly/tags/jeez/MavenJeezTagLibrary.html">MavenJeezTagLibrary</A>
<DD>&nbsp;
<DT><A HREF="org/apache/maven/jelly/MavenJellyContext.html"><B>MavenJellyContext</B></A> - class org.apache.maven.jelly.<A HREF="org/apache/maven/jelly/MavenJellyContext.html">MavenJellyContext</A>.<DD>Specialized version of a <code>JellyContext</code>.<DT><A HREF="org/apache/maven/jelly/MavenJellyContext.html#MavenJellyContext()"><B>MavenJellyContext()</B></A> -
Constructor for class org.apache.maven.jelly.<A HREF="org/apache/maven/jelly/MavenJellyContext.html">MavenJellyContext</A>
<DD>Construct.
<DT><A HREF="org/apache/maven/jelly/MavenJellyContext.html#MavenJellyContext(org.apache.maven.jelly.MavenJellyContext)"><B>MavenJellyContext(MavenJellyContext)</B></A> -
Constructor for class org.apache.maven.jelly.<A HREF="org/apache/maven/jelly/MavenJellyContext.html">MavenJellyContext</A>
<DD>Construct.
<DT><A HREF="org/apache/maven/jelly/MavenJellyContext.html#MavenJellyContext(java.net.URL)"><B>MavenJellyContext(URL)</B></A> -
Constructor for class org.apache.maven.jelly.<A HREF="org/apache/maven/jelly/MavenJellyContext.html">MavenJellyContext</A>
<DD>Construct.
<DT><A HREF="org/apache/maven/MavenSession.html"><B>MavenSession</B></A> - class org.apache.maven.<A HREF="org/apache/maven/MavenSession.html">MavenSession</A>.<DD>This class should represent the single place to access everything that
 MavenSession provides and control any options provided by MavenSession.<DT><A HREF="org/apache/maven/MavenSession.html#MavenSession()"><B>MavenSession()</B></A> -
Constructor for class org.apache.maven.<A HREF="org/apache/maven/MavenSession.html">MavenSession</A>
<DD>Default Constructor.
<DT><A HREF="org/apache/maven/jelly/tags/maven/MavenTag.html"><B>MavenTag</B></A> - class org.apache.maven.jelly.tags.maven.<A HREF="org/apache/maven/jelly/tags/maven/MavenTag.html">MavenTag</A>.<DD>A way of running maven as a Jelly tag<DT><A HREF="org/apache/maven/jelly/tags/maven/MavenTag.html#MavenTag()"><B>MavenTag()</B></A> -
Constructor for class org.apache.maven.jelly.tags.maven.<A HREF="org/apache/maven/jelly/tags/maven/MavenTag.html">MavenTag</A>
<DD>&nbsp;
<DT><A HREF="org/apache/maven/jelly/tags/maven/MavenTagLibrary.html"><B>MavenTagLibrary</B></A> - class org.apache.maven.jelly.tags.maven.<A HREF="org/apache/maven/jelly/tags/maven/MavenTagLibrary.html">MavenTagLibrary</A>.<DD>MavenSession tag library for use in Jelly scripts.<DT><A HREF="org/apache/maven/jelly/tags/maven/MavenTagLibrary.html#MavenTagLibrary()"><B>MavenTagLibrary()</B></A> -
Constructor for class org.apache.maven.jelly.tags.maven.<A HREF="org/apache/maven/jelly/tags/maven/MavenTagLibrary.html">MavenTagLibrary</A>
<DD>Create an instance of the <A HREF="org/apache/maven/jelly/tags/maven/MavenTagLibrary.html"><CODE>MavenTagLibrary</CODE></A>, registering related
 tag libraries
<DT><A HREF="org/apache/maven/ant/MavenTask.html"><B>MavenTask</B></A> - class org.apache.maven.ant.<A HREF="org/apache/maven/ant/MavenTask.html">MavenTask</A>.<DD>Allows Ant to "wrap" Maven.<DT><A HREF="org/apache/maven/ant/MavenTask.html#MavenTask()"><B>MavenTask()</B></A> -
Constructor for class org.apache.maven.ant.<A HREF="org/apache/maven/ant/MavenTask.html">MavenTask</A>
<DD>&nbsp;
<DT><A HREF="org/apache/maven/MavenTool.html"><B>MavenTool</B></A> - class org.apache.maven.<A HREF="org/apache/maven/MavenTool.html">MavenTool</A>.<DD>Context/pull tool for use in MavenSession templates.<DT><A HREF="org/apache/maven/MavenTool.html#MavenTool()"><B>MavenTool()</B></A> -
Constructor for class org.apache.maven.<A HREF="org/apache/maven/MavenTool.html">MavenTool</A>
<DD>Creates a new instance.
<DT><A HREF="org/apache/maven/MavenUtils.html"><B>MavenUtils</B></A> - class org.apache.maven.<A HREF="org/apache/maven/MavenUtils.html">MavenUtils</A>.<DD>Utilities for reading maven project descriptors, profile descriptors and
 workspace descriptors.<DT><A HREF="org/apache/maven/MavenUtils.html#MavenUtils()"><B>MavenUtils()</B></A> -
Constructor for class org.apache.maven.<A HREF="org/apache/maven/MavenUtils.html">MavenUtils</A>
<DD>&nbsp;
<DT><A HREF="org/apache/maven/util/MD5Sum.html"><B>MD5Sum</B></A> - class org.apache.maven.util.<A HREF="org/apache/maven/util/MD5Sum.html">MD5Sum</A>.<DD>Encode an MD5 digest into a String.<DT><A HREF="org/apache/maven/util/MD5Sum.html#MD5Sum()"><B>MD5Sum()</B></A> -
Constructor for class org.apache.maven.util.<A HREF="org/apache/maven/util/MD5Sum.html">MD5Sum</A>
<DD>&nbsp;
<DT><A HREF="org/apache/maven/MavenUtils.html#mergeMaps(java.util.Map[])"><B>mergeMaps(Map[])</B></A> -
Static method in class org.apache.maven.<A HREF="org/apache/maven/MavenUtils.html">MavenUtils</A>
<DD>Take a series of <code>Map</code>s and merge
 them where the ordering of the array from 0..n
 is the dominant order.
<DT><A HREF="org/apache/maven/MavenUtils.html#mergeMaps(java.util.Map, java.util.Map)"><B>mergeMaps(Map, Map)</B></A> -
Static method in class org.apache.maven.<A HREF="org/apache/maven/MavenUtils.html">MavenUtils</A>
<DD>Take a dominant and recessive Map and merge the key:value
 pairs where the recessive Map may add key:value pairs to the dominant
 Map but may not override any existing key:value pairs.
<DT><A HREF="org/apache/maven/jelly/JellyBuildListener.html#messageLogged(org.apache.tools.ant.BuildEvent)"><B>messageLogged(BuildEvent)</B></A> -
Method in class org.apache.maven.jelly.<A HREF="org/apache/maven/jelly/JellyBuildListener.html">JellyBuildListener</A>
<DD>&nbsp;
</DL>
<HR>
<A NAME="_O_"><!-- --></A><H2>
<B>O</B></H2>
<DL>
<DT><A HREF="org/apache/maven/jelly/tags/maven/ReactorTag.html#onDependencyResolutionException(java.lang.Exception)"><B>onDependencyResolutionException(Exception)</B></A> -
Method in class org.apache.maven.jelly.tags.maven.<A HREF="org/apache/maven/jelly/tags/maven/ReactorTag.html">ReactorTag</A>
<DD>This method is running when an exception occurs in
 dependency resolution.
<DT><A HREF="org/apache/maven/jelly/tags/maven/ReactorTag.html#onException(org.apache.maven.project.Project, java.lang.Exception)"><B>onException(Project, Exception)</B></A> -
Method in class org.apache.maven.jelly.tags.maven.<A HREF="org/apache/maven/jelly/tags/maven/ReactorTag.html">ReactorTag</A>
<DD>This method is running when an exception occurs whatever
 the ignoreFailures value.
<DT><A HREF="org/apache/maven/MavenConstants.html#ONLINE"><B>ONLINE</B></A> -
Static variable in class org.apache.maven.<A HREF="org/apache/maven/MavenConstants.html">MavenConstants</A>
<DD>Online tag.
<DT><A HREF="org/apache/maven/package-summary.html"><B>org.apache.maven</B></A> - package org.apache.maven<DD>&nbsp;<DT><A HREF="org/apache/maven/ant/package-summary.html"><B>org.apache.maven.ant</B></A> - package org.apache.maven.ant<DD>&nbsp;<DT><A HREF="org/apache/maven/cli/package-summary.html"><B>org.apache.maven.cli</B></A> - package org.apache.maven.cli<DD>&nbsp;<DT><A HREF="org/apache/maven/jelly/package-summary.html"><B>org.apache.maven.jelly</B></A> - package org.apache.maven.jelly<DD>&nbsp;<DT><A HREF="org/apache/maven/jelly/tags/package-summary.html"><B>org.apache.maven.jelly.tags</B></A> - package org.apache.maven.jelly.tags<DD>&nbsp;<DT><A HREF="org/apache/maven/jelly/tags/jeez/package-summary.html"><B>org.apache.maven.jelly.tags.jeez</B></A> - package org.apache.maven.jelly.tags.jeez<DD>This tag library groups together the ant and werkz tag libraries into one namespace.<DT><A HREF="org/apache/maven/jelly/tags/maven/package-summary.html"><B>org.apache.maven.jelly.tags.maven</B></A> - package org.apache.maven.jelly.tags.maven<DD>&nbsp;<DT><A HREF="org/apache/maven/jelly/tags/werkz/package-summary.html"><B>org.apache.maven.jelly.tags.werkz</B></A> - package org.apache.maven.jelly.tags.werkz<DD>&nbsp;<DT><A HREF="org/apache/maven/plugin/package-summary.html"><B>org.apache.maven.plugin</B></A> - package org.apache.maven.plugin<DD>&nbsp;<DT><A HREF="org/apache/maven/project/package-summary.html"><B>org.apache.maven.project</B></A> - package org.apache.maven.project<DD>&nbsp;<DT><A HREF="org/apache/maven/repository/package-summary.html"><B>org.apache.maven.repository</B></A> - package org.apache.maven.repository<DD>&nbsp;<DT><A HREF="org/apache/maven/util/package-summary.html"><B>org.apache.maven.util</B></A> - package org.apache.maven.util<DD>&nbsp;<DT><A HREF="org/apache/maven/verifier/package-summary.html"><B>org.apache.maven.verifier</B></A> - package org.apache.maven.verifier<DD>&nbsp;<DT><A HREF="org/apache/maven/project/Organization.html"><B>Organization</B></A> - class org.apache.maven.project.<A HREF="org/apache/maven/project/Organization.html">Organization</A>.<DD>&nbsp;<DT><A HREF="org/apache/maven/project/Organization.html#Organization()"><B>Organization()</B></A> -
Constructor for class org.apache.maven.project.<A HREF="org/apache/maven/project/Organization.html">Organization</A>
<DD>&nbsp;
</DL>
<HR>
<A NAME="_P_"><!-- --></A><H2>
<B>P</B></H2>
<DL>
<DT><A HREF="org/apache/maven/project/PackageGroup.html"><B>PackageGroup</B></A> - class org.apache.maven.project.<A HREF="org/apache/maven/project/PackageGroup.html">PackageGroup</A>.<DD>A PackageGroup is a group of packages with a title which is used to document
 the packages inside a project when creating the javadoc.<DT><A HREF="org/apache/maven/project/PackageGroup.html#PackageGroup()"><B>PackageGroup()</B></A> -
Constructor for class org.apache.maven.project.<A HREF="org/apache/maven/project/PackageGroup.html">PackageGroup</A>
<DD>&nbsp;
<DT><A HREF="org/apache/maven/project/Project.html#parentBasedir()"><B>parentBasedir()</B></A> -
Method in class org.apache.maven.project.<A HREF="org/apache/maven/project/Project.html">Project</A>
<DD>Get the parent's basedir.
<DT><A HREF="org/apache/maven/project/Project.html#parentMavenXml()"><B>parentMavenXml()</B></A> -
Method in class org.apache.maven.project.<A HREF="org/apache/maven/project/Project.html">Project</A>
<DD>Get parent maven.xml file.
<DT><A HREF="org/apache/maven/plugin/PluginCacheManager.html#parse()"><B>parse()</B></A> -
Method in class org.apache.maven.plugin.<A HREF="org/apache/maven/plugin/PluginCacheManager.html">PluginCacheManager</A>
<DD>&nbsp;
<DT><A HREF="org/apache/maven/plugin/DefaultPluginCacheManager.html#parse()"><B>parse()</B></A> -
Method in class org.apache.maven.plugin.<A HREF="org/apache/maven/plugin/DefaultPluginCacheManager.html">DefaultPluginCacheManager</A>
<DD>&nbsp;
<DT><A HREF="org/apache/maven/cli/CLIManager.html#parse(java.lang.String[])"><B>parse(String[])</B></A> -
Static method in class org.apache.maven.cli.<A HREF="org/apache/maven/cli/CLIManager.html">CLIManager</A>
<DD>Parse a string-array of command-line arguments.
<DT><A HREF="org/apache/maven/project/Plugin.html"><B>Plugin</B></A> - class org.apache.maven.project.<A HREF="org/apache/maven/project/Plugin.html">Plugin</A>.<DD>A Plugin is essentially a Project, but in the context of  POM
 we only need the basic id, verions, and properties so extending
 BaseObject will suffice.<DT><A HREF="org/apache/maven/plugin/PluginCacheManager.html#PLUGIN_DYNATAG_DEPS_CACHE"><B>PLUGIN_DYNATAG_DEPS_CACHE</B></A> -
Static variable in class org.apache.maven.plugin.<A HREF="org/apache/maven/plugin/PluginCacheManager.html">PluginCacheManager</A>
<DD>Plugin -> dynatag dependencies.
<DT><A HREF="org/apache/maven/MavenConstants.html#PLUGIN_MANAGER"><B>PLUGIN_MANAGER</B></A> -
Static variable in class org.apache.maven.<A HREF="org/apache/maven/MavenConstants.html">MavenConstants</A>
<DD>Plugin Manager tag.
<DT><A HREF="org/apache/maven/plugin/PluginManager.html#PLUGIN_PROPERTIES_NAME"><B>PLUGIN_PROPERTIES_NAME</B></A> -
Static variable in class org.apache.maven.plugin.<A HREF="org/apache/maven/plugin/PluginManager.html">PluginManager</A>
<DD>Plug-in default properties name.
<DT><A HREF="org/apache/maven/plugin/DefaultPluginManager.html#PLUGIN_PROPERTIES_NAME"><B>PLUGIN_PROPERTIES_NAME</B></A> -
Static variable in class org.apache.maven.plugin.<A HREF="org/apache/maven/plugin/DefaultPluginManager.html">DefaultPluginManager</A>
<DD>Plug-in default properties name.
<DT><A HREF="org/apache/maven/plugin/PluginManager.html#PLUGIN_SCRIPT_NAME"><B>PLUGIN_SCRIPT_NAME</B></A> -
Static variable in class org.apache.maven.plugin.<A HREF="org/apache/maven/plugin/PluginManager.html">PluginManager</A>
<DD>Plug-in main script name.
<DT><A HREF="org/apache/maven/plugin/DefaultPluginManager.html#PLUGIN_SCRIPT_NAME"><B>PLUGIN_SCRIPT_NAME</B></A> -
Static variable in class org.apache.maven.plugin.<A HREF="org/apache/maven/plugin/DefaultPluginManager.html">DefaultPluginManager</A>
<DD>Plug-in main script name.
<DT><A HREF="org/apache/maven/project/Plugin.html#Plugin()"><B>Plugin()</B></A> -
Constructor for class org.apache.maven.project.<A HREF="org/apache/maven/project/Plugin.html">Plugin</A>
<DD>&nbsp;
<DT><A HREF="org/apache/maven/repository/PluginArtifact.html"><B>PluginArtifact</B></A> - class org.apache.maven.repository.<A HREF="org/apache/maven/repository/PluginArtifact.html">PluginArtifact</A>.<DD>Plugin artifact that has special knowledge of the MavenSession's
 plugin mechanism.<DT><A HREF="org/apache/maven/repository/PluginArtifact.html#PluginArtifact(org.apache.maven.project.Dependency)"><B>PluginArtifact(Dependency)</B></A> -
Constructor for class org.apache.maven.repository.<A HREF="org/apache/maven/repository/PluginArtifact.html">PluginArtifact</A>
<DD>Constructor for the MavenSession Plugin artifact object.
<DT><A HREF="org/apache/maven/plugin/PluginCacheManager.html"><B>PluginCacheManager</B></A> - class org.apache.maven.plugin.<A HREF="org/apache/maven/plugin/PluginCacheManager.html">PluginCacheManager</A>.<DD>&nbsp;<DT><A HREF="org/apache/maven/plugin/PluginCacheManager.html#PluginCacheManager()"><B>PluginCacheManager()</B></A> -
Constructor for class org.apache.maven.plugin.<A HREF="org/apache/maven/plugin/PluginCacheManager.html">PluginCacheManager</A>
<DD>Default constructor.
<DT><A HREF="org/apache/maven/plugin/PluginCacheManager.html#PluginCacheManager(boolean)"><B>PluginCacheManager(boolean)</B></A> -
Constructor for class org.apache.maven.plugin.<A HREF="org/apache/maven/plugin/PluginCacheManager.html">PluginCacheManager</A>
<DD>&nbsp;
<DT><A HREF="org/apache/maven/plugin/PluginManager.html"><B>PluginManager</B></A> - class org.apache.maven.plugin.<A HREF="org/apache/maven/plugin/PluginManager.html">PluginManager</A>.<DD>Plugin manager for MavenSession.<DT><A HREF="org/apache/maven/plugin/PluginManager.html#PluginManager(org.apache.maven.MavenSession)"><B>PluginManager(MavenSession)</B></A> -
Constructor for class org.apache.maven.plugin.<A HREF="org/apache/maven/plugin/PluginManager.html">PluginManager</A>
<DD>Default constructor.
<DT><A HREF="org/apache/maven/plugin/PluginCacheManager.html#PLUGINS_CACHE"><B>PLUGINS_CACHE</B></A> -
Static variable in class org.apache.maven.plugin.<A HREF="org/apache/maven/plugin/PluginCacheManager.html">PluginCacheManager</A>
<DD>Plug-in cache
<DT><A HREF="org/apache/maven/cli/App.html#POM_FILE_NAME"><B>POM_FILE_NAME</B></A> -
Static variable in class org.apache.maven.cli.<A HREF="org/apache/maven/cli/App.html">App</A>
<DD>Default file name for an XML-based POM.
<DT><A HREF="org/apache/maven/MavenConstants.html#POM_VERSION"><B>POM_VERSION</B></A> -
Static variable in class org.apache.maven.<A HREF="org/apache/maven/MavenConstants.html">MavenConstants</A>
<DD>This is the version of the POM that this version of
 MavenSession operates with.
<DT><A HREF="org/apache/maven/jelly/tags/maven/PomTag.html"><B>PomTag</B></A> - class org.apache.maven.jelly.tags.maven.<A HREF="org/apache/maven/jelly/tags/maven/PomTag.html">PomTag</A>.<DD>MavenSession Jelly tag that creates a POM instance.<DT><A HREF="org/apache/maven/jelly/tags/maven/PomTag.html#PomTag()"><B>PomTag()</B></A> -
Constructor for class org.apache.maven.jelly.tags.maven.<A HREF="org/apache/maven/jelly/tags/maven/PomTag.html">PomTag</A>
<DD>&nbsp;
<DT><A HREF="org/apache/maven/MavenSession.html#prepForGoal(java.lang.String, org.apache.maven.project.Project)"><B>prepForGoal(String, Project)</B></A> -
Method in class org.apache.maven.<A HREF="org/apache/maven/MavenSession.html">MavenSession</A>
<DD>Prep for a goal.
<DT><A HREF="org/apache/maven/plugin/PluginManager.html#prepForGoal(java.lang.String, org.apache.maven.project.Project)"><B>prepForGoal(String, Project)</B></A> -
Method in class org.apache.maven.plugin.<A HREF="org/apache/maven/plugin/PluginManager.html">PluginManager</A>
<DD>Perform any required initialization to enable a goal
  to be met.
<DT><A HREF="org/apache/maven/cli/App.html#printConsoleMavenHeader()"><B>printConsoleMavenHeader()</B></A> -
Method in class org.apache.maven.cli.<A HREF="org/apache/maven/cli/App.html">App</A>
<DD>Prints the MavenSession header to System.out
<DT><A HREF="org/apache/maven/MavenException.html#printStackTrace()"><B>printStackTrace()</B></A> -
Method in class org.apache.maven.<A HREF="org/apache/maven/MavenException.html">MavenException</A>
<DD>Prints the stack trace for this exception and any
 nested exception to <code>System.err</code>.
<DT><A HREF="org/apache/maven/MavenException.html#printStackTrace(java.io.PrintStream)"><B>printStackTrace(PrintStream)</B></A> -
Method in class org.apache.maven.<A HREF="org/apache/maven/MavenException.html">MavenException</A>
<DD>Prints the stack trace of this exception and any nested
 exception to the specified PrintStream.
<DT><A HREF="org/apache/maven/MavenException.html#printStackTrace(java.io.PrintWriter)"><B>printStackTrace(PrintWriter)</B></A> -
Method in class org.apache.maven.<A HREF="org/apache/maven/MavenException.html">MavenException</A>
<DD>Prints the stack trace of this exception and any nested
 exception to the specified PrintWriter.
<DT><A HREF="org/apache/maven/project/Project.html#processDependencies()"><B>processDependencies()</B></A> -
Method in class org.apache.maven.project.<A HREF="org/apache/maven/project/Project.html">Project</A>
<DD>process the dependencies for this project
<DT><A HREF="org/apache/maven/project/Project.html"><B>Project</B></A> - class org.apache.maven.project.<A HREF="org/apache/maven/project/Project.html">Project</A>.<DD>&nbsp;<DT><A HREF="org/apache/maven/project/Project.html#Project()"><B>Project()</B></A> -
Constructor for class org.apache.maven.project.<A HREF="org/apache/maven/project/Project.html">Project</A>
<DD>Default constructor.
<DT><A HREF="org/apache/maven/verifier/ProjectVerifier.html"><B>ProjectVerifier</B></A> - class org.apache.maven.verifier.<A HREF="org/apache/maven/verifier/ProjectVerifier.html">ProjectVerifier</A>.<DD>&nbsp;<DT><A HREF="org/apache/maven/verifier/ProjectVerifier.html#ProjectVerifier()"><B>ProjectVerifier()</B></A> -
Constructor for class org.apache.maven.verifier.<A HREF="org/apache/maven/verifier/ProjectVerifier.html">ProjectVerifier</A>
<DD>&nbsp;
<DT><A HREF="org/apache/maven/MavenConstants.html#PROXY_HOST"><B>PROXY_HOST</B></A> -
Static variable in class org.apache.maven.<A HREF="org/apache/maven/MavenConstants.html">MavenConstants</A>
<DD>Proxy host tag.
<DT><A HREF="org/apache/maven/MavenConstants.html#PROXY_PASSWORD"><B>PROXY_PASSWORD</B></A> -
Static variable in class org.apache.maven.<A HREF="org/apache/maven/MavenConstants.html">MavenConstants</A>
<DD>Proxy password tag.
<DT><A HREF="org/apache/maven/MavenConstants.html#PROXY_PORT"><B>PROXY_PORT</B></A> -
Static variable in class org.apache.maven.<A HREF="org/apache/maven/MavenConstants.html">MavenConstants</A>
<DD>Proxy port tag.
<DT><A HREF="org/apache/maven/MavenConstants.html#PROXY_USERNAME"><B>PROXY_USERNAME</B></A> -
Static variable in class org.apache.maven.<A HREF="org/apache/maven/MavenConstants.html">MavenConstants</A>
<DD>Proxy user name tag.
<DT><A HREF="org/apache/maven/repository/AbstractArtifact.html#ps"><B>ps</B></A> -
Static variable in class org.apache.maven.repository.<A HREF="org/apache/maven/repository/AbstractArtifact.html">AbstractArtifact</A>
<DD>Platform specific file separator used for file system operations.
</DL>
<HR>
<A NAME="_R_"><!-- --></A><H2>
<B>R</B></H2>
<DL>
<DT><A HREF="org/apache/maven/MavenConstants.html#REACTOR_PROJECT"><B>REACTOR_PROJECT</B></A> -
Static variable in class org.apache.maven.<A HREF="org/apache/maven/MavenConstants.html">MavenConstants</A>
<DD>Reactor projects context tag
<DT><A HREF="org/apache/maven/jelly/tags/maven/ReactorTag.html"><B>ReactorTag</B></A> - class org.apache.maven.jelly.tags.maven.<A HREF="org/apache/maven/jelly/tags/maven/ReactorTag.html">ReactorTag</A>.<DD>Used for building a set of projects in the correct order to satisfy any
 dependencies among the projects being processed.<DT><A HREF="org/apache/maven/jelly/tags/maven/ReactorTag.html#ReactorTag()"><B>ReactorTag()</B></A> -
Constructor for class org.apache.maven.jelly.tags.maven.<A HREF="org/apache/maven/jelly/tags/maven/ReactorTag.html">ReactorTag</A>
<DD>&nbsp;
<DT><A HREF="org/apache/maven/util/StringInputStream.html#read()"><B>read()</B></A> -
Method in class org.apache.maven.util.<A HREF="org/apache/maven/util/StringInputStream.html">StringInputStream</A>
<DD>Reads from the Stringreader, returning the same value.
<DT><A HREF="org/apache/maven/jelly/MavenJellyContext.html#registerTagLibrary(java.lang.String, java.lang.String)"><B>registerTagLibrary(String, String)</B></A> -
Method in class org.apache.maven.jelly.<A HREF="org/apache/maven/jelly/MavenJellyContext.html">MavenJellyContext</A>
<DD>Register a new tag library.
<DT><A HREF="org/apache/maven/jelly/MavenJellyContext.html#registerTagLibrary(java.lang.String, org.apache.commons.jelly.TagLibrary)"><B>registerTagLibrary(String, TagLibrary)</B></A> -
Method in class org.apache.maven.jelly.<A HREF="org/apache/maven/jelly/MavenJellyContext.html">MavenJellyContext</A>
<DD>Register a new tag library.
<DT><A HREF="org/apache/maven/project/Project.html#removeGoalNames()"><B>removeGoalNames()</B></A> -
Method in class org.apache.maven.project.<A HREF="org/apache/maven/project/Project.html">Project</A>
<DD>Remove all project goals.
<DT><A HREF="org/apache/maven/MavenConstants.html#REPO_LOCAL"><B>REPO_LOCAL</B></A> -
Static variable in class org.apache.maven.<A HREF="org/apache/maven/MavenConstants.html">MavenConstants</A>
<DD>Local Repository tag.
<DT><A HREF="org/apache/maven/MavenConstants.html#REPO_REMOTE"><B>REPO_REMOTE</B></A> -
Static variable in class org.apache.maven.<A HREF="org/apache/maven/MavenConstants.html">MavenConstants</A>
<DD>Local Repository tag.
<DT><A HREF="org/apache/maven/MavenConstants.html#REPO_REMOTE_ENABLED"><B>REPO_REMOTE_ENABLED</B></A> -
Static variable in class org.apache.maven.<A HREF="org/apache/maven/MavenConstants.html">MavenConstants</A>
<DD>Local Repository enabled tag.
<DT><A HREF="org/apache/maven/verifier/RepoConfigException.html"><B>RepoConfigException</B></A> - exception org.apache.maven.verifier.<A HREF="org/apache/maven/verifier/RepoConfigException.html">RepoConfigException</A>.<DD>Specialized repository configuration exception.<DT><A HREF="org/apache/maven/verifier/RepoConfigException.html#RepoConfigException(java.lang.String)"><B>RepoConfigException(String)</B></A> -
Constructor for class org.apache.maven.verifier.<A HREF="org/apache/maven/verifier/RepoConfigException.html">RepoConfigException</A>
<DD>Constructs a RepoConfigException with the specified detail message.
<DT><A HREF="org/apache/maven/project/Repository.html"><B>Repository</B></A> - class org.apache.maven.project.<A HREF="org/apache/maven/project/Repository.html">Repository</A>.<DD>NOTE: This is very CVS specific, but I would like to try additional SCM
 package like subversion ASAP.<DT><A HREF="org/apache/maven/project/Repository.html#Repository()"><B>Repository()</B></A> -
Constructor for class org.apache.maven.project.<A HREF="org/apache/maven/project/Repository.html">Repository</A>
<DD>&nbsp;
<DT><A HREF="org/apache/maven/repository/RepositoryLayout.html"><B>RepositoryLayout</B></A> - interface org.apache.maven.repository.<A HREF="org/apache/maven/repository/RepositoryLayout.html">RepositoryLayout</A>.<DD><code>RepositoryLayout</code> describes how artifacts are to
 be arranged in a user's local repository.<DT><A HREF="org/apache/maven/util/StringInputStream.html#reset()"><B>reset()</B></A> -
Method in class org.apache.maven.util.<A HREF="org/apache/maven/util/StringInputStream.html">StringInputStream</A>
<DD>Resets the StringReader.
<DT><A HREF="org/apache/maven/MavenTool.html#resetCount()"><B>resetCount()</B></A> -
Method in class org.apache.maven.<A HREF="org/apache/maven/MavenTool.html">MavenTool</A>
<DD>Clear the counter so that there are zero items
<DT><A HREF="org/apache/maven/project/BaseObject.html#resolvedProperties()"><B>resolvedProperties()</B></A> -
Method in class org.apache.maven.project.<A HREF="org/apache/maven/project/BaseObject.html">BaseObject</A>
<DD>Get the resolved properties after the name:value
 processing has been done.
<DT><A HREF="org/apache/maven/MavenTool.html#resolvePathFragment(java.lang.String, java.lang.String, org.apache.tools.ant.types.Path)"><B>resolvePathFragment(String, String, Path)</B></A> -
Method in class org.apache.maven.<A HREF="org/apache/maven/MavenTool.html">MavenTool</A>
<DD>Resolves a path fragment for the first resource found in
 <code>directories</code>.
<DT><A HREF="org/apache/maven/MavenTool.html#resolvePathFragment(java.lang.String, java.lang.String, java.lang.String[])"><B>resolvePathFragment(String, String, String[])</B></A> -
Method in class org.apache.maven.<A HREF="org/apache/maven/MavenTool.html">MavenTool</A>
<DD>Called by <A HREF="org/apache/maven/MavenTool.html#resolvePathFragment(java.lang.String, java.lang.String, org.apache.tools.ant.types.Path)"><CODE>MavenTool.resolvePathFragment(String, String, Path)</CODE></A>.
<DT><A HREF="org/apache/maven/project/Resource.html"><B>Resource</B></A> - class org.apache.maven.project.<A HREF="org/apache/maven/project/Resource.html">Resource</A>.<DD>Represents a set of files in a single directory.<DT><A HREF="org/apache/maven/project/Resource.html#Resource()"><B>Resource()</B></A> -
Constructor for class org.apache.maven.project.<A HREF="org/apache/maven/project/Resource.html">Resource</A>
<DD>&nbsp;
<DT><A HREF="org/apache/maven/util/ResourceBean.html"><B>ResourceBean</B></A> - class org.apache.maven.util.<A HREF="org/apache/maven/util/ResourceBean.html">ResourceBean</A>.<DD>A helper bean to load the given URI from the current threads class loader or
 the class loader that was used to load this class.<DT><A HREF="org/apache/maven/util/ResourceBean.html#ResourceBean()"><B>ResourceBean()</B></A> -
Constructor for class org.apache.maven.util.<A HREF="org/apache/maven/util/ResourceBean.html">ResourceBean</A>
<DD>&nbsp;
<DT><A HREF="org/apache/maven/jelly/JellyUtils.html#runScript(java.io.File, java.net.URL, org.apache.commons.jelly.JellyContext, org.apache.commons.jelly.XMLOutput)"><B>runScript(File, URL, JellyContext, XMLOutput)</B></A> -
Static method in class org.apache.maven.jelly.<A HREF="org/apache/maven/jelly/JellyUtils.html">JellyUtils</A>
<DD>Run a jelly script.
<DT><A HREF="org/apache/maven/jelly/JellyUtils.html#runScript(java.io.InputStream, java.net.URL, org.apache.commons.jelly.JellyContext, org.apache.commons.jelly.XMLOutput)"><B>runScript(InputStream, URL, JellyContext, XMLOutput)</B></A> -
Static method in class org.apache.maven.jelly.<A HREF="org/apache/maven/jelly/JellyUtils.html">JellyUtils</A>
<DD>Run a jelly script.
</DL>
<HR>
<A NAME="_S_"><!-- --></A><H2>
<B>S</B></H2>
<DL>
<DT><A HREF="org/apache/maven/plugin/PluginCacheManager.html#saveCache()"><B>saveCache()</B></A> -
Method in class org.apache.maven.plugin.<A HREF="org/apache/maven/plugin/PluginCacheManager.html">PluginCacheManager</A>
<DD>&nbsp;
<DT><A HREF="org/apache/maven/plugin/DefaultPluginCacheManager.html#saveCache()"><B>saveCache()</B></A> -
Method in class org.apache.maven.plugin.<A HREF="org/apache/maven/plugin/DefaultPluginCacheManager.html">DefaultPluginCacheManager</A>
<DD>&nbsp;
<DT><A HREF="org/apache/maven/MavenConstants.html#SESSION"><B>SESSION</B></A> -
Static variable in class org.apache.maven.<A HREF="org/apache/maven/MavenConstants.html">MavenConstants</A>
<DD>Dependency classpath tag.
<DT><A HREF="org/apache/maven/jelly/MavenJellyContext.html#setAntProject(org.apache.commons.grant.GrantProject)"><B>setAntProject(GrantProject)</B></A> -
Method in class org.apache.maven.jelly.<A HREF="org/apache/maven/jelly/MavenJellyContext.html">MavenJellyContext</A>
<DD>Set the ant project.
<DT><A HREF="org/apache/maven/project/Project.html#setAntProject(org.apache.commons.grant.GrantProject)"><B>setAntProject(GrantProject)</B></A> -
Method in class org.apache.maven.project.<A HREF="org/apache/maven/project/Project.html">Project</A>
<DD>Set the grantProject attribute.
<DT><A HREF="org/apache/maven/project/MailingList.html#setArchive(java.lang.String)"><B>setArchive(String)</B></A> -
Method in class org.apache.maven.project.<A HREF="org/apache/maven/project/MailingList.html">MailingList</A>
<DD>Sets the archive attribute of the MailingList object
<DT><A HREF="org/apache/maven/project/Project.html#setArtifactId(java.lang.String)"><B>setArtifactId(String)</B></A> -
Method in class org.apache.maven.project.<A HREF="org/apache/maven/project/Project.html">Project</A>
<DD>Set the artifactId for this project.
<DT><A HREF="org/apache/maven/project/Dependency.html#setArtifactId(java.lang.String)"><B>setArtifactId(String)</B></A> -
Method in class org.apache.maven.project.<A HREF="org/apache/maven/project/Dependency.html">Dependency</A>
<DD>Set the artifact name.
<DT><A HREF="org/apache/maven/project/Project.html#setArtifacts(java.util.List)"><B>setArtifacts(List)</B></A> -
Method in class org.apache.maven.project.<A HREF="org/apache/maven/project/Project.html">Project</A>
<DD>Set the  attribute.
<DT><A HREF="org/apache/maven/project/Build.html#setAspectSourceDirectory(java.lang.String)"><B>setAspectSourceDirectory(String)</B></A> -
Method in class org.apache.maven.project.<A HREF="org/apache/maven/project/Build.html">Build</A>
<DD>Adds a feature to the AspectSourceDirectory attribute of the Build object
<DT><A HREF="org/apache/maven/jelly/tags/maven/ReactorTag.html#setBanner(java.lang.String)"><B>setBanner(String)</B></A> -
Method in class org.apache.maven.jelly.tags.maven.<A HREF="org/apache/maven/jelly/tags/maven/ReactorTag.html">ReactorTag</A>
<DD>Set the banner to be displayed for each project while
 it is being processed.
<DT><A HREF="org/apache/maven/jelly/tags/maven/ReactorTag.html#setBasedir(java.io.File)"><B>setBasedir(File)</B></A> -
Method in class org.apache.maven.jelly.tags.maven.<A HREF="org/apache/maven/jelly/tags/maven/ReactorTag.html">ReactorTag</A>
<DD>Setter for the basedir property
<DT><A HREF="org/apache/maven/jelly/tags/maven/MavenTag.html#setBasedir(java.io.File)"><B>setBasedir(File)</B></A> -
Method in class org.apache.maven.jelly.tags.maven.<A HREF="org/apache/maven/jelly/tags/maven/MavenTag.html">MavenTag</A>
<DD><B>Deprecated.</B>&nbsp;<I>You only need to specify the project descriptor.</I>
<DT><A HREF="org/apache/maven/project/Project.html#setBuild(org.apache.maven.project.Build)"><B>setBuild(Build)</B></A> -
Method in class org.apache.maven.project.<A HREF="org/apache/maven/project/Project.html">Project</A>
<DD>Sets the build attribute of the Project object
<DT><A HREF="org/apache/maven/plugin/PluginCacheManager.html#setCallbackCache(java.util.Properties)"><B>setCallbackCache(Properties)</B></A> -
Method in class org.apache.maven.plugin.<A HREF="org/apache/maven/plugin/PluginCacheManager.html">PluginCacheManager</A>
<DD>&nbsp;
<DT><A HREF="org/apache/maven/util/MD5Sum.html#setChecksum(java.lang.String)"><B>setChecksum(String)</B></A> -
Method in class org.apache.maven.util.<A HREF="org/apache/maven/util/MD5Sum.html">MD5Sum</A>
<DD>Set the checksum
<DT><A HREF="org/apache/maven/util/ResourceBean.html#setClassLoader(java.lang.ClassLoader)"><B>setClassLoader(ClassLoader)</B></A> -
Method in class org.apache.maven.util.<A HREF="org/apache/maven/util/ResourceBean.html">ResourceBean</A>
<DD>Sets the classLoader.
<DT><A HREF="org/apache/maven/project/SourceModification.html#setClassName(java.lang.String)"><B>setClassName(String)</B></A> -
Method in class org.apache.maven.project.<A HREF="org/apache/maven/project/SourceModification.html">SourceModification</A>
<DD>Sets the className attribute of the SourceModification object
<DT><A HREF="org/apache/maven/cli/App.html#setCli(org.apache.commons.cli.CommandLine)"><B>setCli(CommandLine)</B></A> -
Method in class org.apache.maven.cli.<A HREF="org/apache/maven/cli/App.html">App</A>
<DD>Set the cli parser.
<DT><A HREF="org/apache/maven/project/License.html#setComments(java.lang.String)"><B>setComments(String)</B></A> -
Method in class org.apache.maven.project.<A HREF="org/apache/maven/project/License.html">License</A>
<DD>Sets the comments.
<DT><A HREF="org/apache/maven/project/Repository.html#setConnection(java.lang.String)"><B>setConnection(String)</B></A> -
Method in class org.apache.maven.project.<A HREF="org/apache/maven/project/Repository.html">Repository</A>
<DD>Sets the connection attribute of the Repository object
<DT><A HREF="org/apache/maven/project/Project.html#setContext(org.apache.maven.jelly.MavenJellyContext)"><B>setContext(MavenJellyContext)</B></A> -
Method in class org.apache.maven.project.<A HREF="org/apache/maven/project/Project.html">Project</A>
<DD>Set the context attribute.
<DT><A HREF="org/apache/maven/project/Project.html#setContributors(java.util.List)"><B>setContributors(List)</B></A> -
Method in class org.apache.maven.project.<A HREF="org/apache/maven/project/Project.html">Project</A>
<DD>Set contributors for this project.
<DT><A HREF="org/apache/maven/project/Project.html#setCurrentVersion(java.lang.String)"><B>setCurrentVersion(String)</B></A> -
Method in class org.apache.maven.project.<A HREF="org/apache/maven/project/Project.html">Project</A>
<DD>Sets the currentVersion attribute of the Project object.
<DT><A HREF="org/apache/maven/jelly/MavenJellyContext.html#setDebugOn(java.lang.Boolean)"><B>setDebugOn(Boolean)</B></A> -
Method in class org.apache.maven.jelly.<A HREF="org/apache/maven/jelly/MavenJellyContext.html">MavenJellyContext</A>
<DD>Set the debug flag.
<DT><A HREF="org/apache/maven/project/Project.html#setDependencies(java.util.List)"><B>setDependencies(List)</B></A> -
Method in class org.apache.maven.project.<A HREF="org/apache/maven/project/Project.html">Project</A>
<DD>Set a list of dependencies.
<DT><A HREF="org/apache/maven/repository/Artifact.html#setDependency(org.apache.maven.project.Dependency)"><B>setDependency(Dependency)</B></A> -
Method in interface org.apache.maven.repository.<A HREF="org/apache/maven/repository/Artifact.html">Artifact</A>
<DD>Set the dependency for this JAR artifact.
<DT><A HREF="org/apache/maven/repository/AbstractArtifact.html#setDependency(org.apache.maven.project.Dependency)"><B>setDependency(Dependency)</B></A> -
Method in class org.apache.maven.repository.<A HREF="org/apache/maven/repository/AbstractArtifact.html">AbstractArtifact</A>
<DD>&nbsp;
<DT><A HREF="org/apache/maven/project/Project.html#setDependencyClasspath(java.lang.String)"><B>setDependencyClasspath(String)</B></A> -
Method in class org.apache.maven.project.<A HREF="org/apache/maven/project/Project.html">Project</A>
<DD>Set the dependency classpath.
<DT><A HREF="org/apache/maven/project/Project.html#setDependencyPath(java.lang.String, java.lang.String)"><B>setDependencyPath(String, String)</B></A> -
Method in class org.apache.maven.project.<A HREF="org/apache/maven/project/Project.html">Project</A>
<DD>Set an individual dependency's classpath entry.
<DT><A HREF="org/apache/maven/project/Project.html#setDependencyVerifier(org.apache.maven.verifier.DependencyVerifier)"><B>setDependencyVerifier(DependencyVerifier)</B></A> -
Method in class org.apache.maven.project.<A HREF="org/apache/maven/project/Project.html">Project</A>
<DD>Set the dependency verifier.
<DT><A HREF="org/apache/maven/jelly/tags/jeez/TargetTag.html#setDepends(java.lang.String)"><B>setDepends(String)</B></A> -
Method in class org.apache.maven.jelly.tags.jeez.<A HREF="org/apache/maven/jelly/tags/jeez/TargetTag.html">TargetTag</A>
<DD>&nbsp;
<DT><A HREF="org/apache/maven/project/Project.html#setDescription(java.lang.String)"><B>setDescription(String)</B></A> -
Method in class org.apache.maven.project.<A HREF="org/apache/maven/project/Project.html">Project</A>
<DD>Sets the description attribute of the Project object.
<DT><A HREF="org/apache/maven/jelly/tags/maven/MavenTag.html#setDescriptor(java.io.File)"><B>setDescriptor(File)</B></A> -
Method in class org.apache.maven.jelly.tags.maven.<A HREF="org/apache/maven/jelly/tags/maven/MavenTag.html">MavenTag</A>
<DD>Setter for the descriptor property
<DT><A HREF="org/apache/maven/util/Expand.html#setDest(java.io.File)"><B>setDest(File)</B></A> -
Method in class org.apache.maven.util.<A HREF="org/apache/maven/util/Expand.html">Expand</A>
<DD>Set the destination directory.
<DT><A HREF="org/apache/maven/project/Project.html#setDevelopers(java.util.List)"><B>setDevelopers(List)</B></A> -
Method in class org.apache.maven.project.<A HREF="org/apache/maven/project/Project.html">Project</A>
<DD>Set the list of developers for this project.
<DT><A HREF="org/apache/maven/project/Resource.html#setDirectory(java.lang.String)"><B>setDirectory(String)</B></A> -
Method in class org.apache.maven.project.<A HREF="org/apache/maven/project/Resource.html">Resource</A>
<DD>Set the directory where resources are located.
<DT><A HREF="org/apache/maven/project/License.html#setDistribution(java.lang.String)"><B>setDistribution(String)</B></A> -
Method in class org.apache.maven.project.<A HREF="org/apache/maven/project/License.html">License</A>
<DD>Sets the type.
<DT><A HREF="org/apache/maven/project/Project.html#setDistributionDirectory(java.lang.String)"><B>setDistributionDirectory(String)</B></A> -
Method in class org.apache.maven.project.<A HREF="org/apache/maven/project/Project.html">Project</A>
<DD>Set the distribution directory.
<DT><A HREF="org/apache/maven/project/Project.html#setDistributionSite(java.lang.String)"><B>setDistributionSite(String)</B></A> -
Method in class org.apache.maven.project.<A HREF="org/apache/maven/project/Project.html">Project</A>
<DD>Set the distribution site.
<DT><A HREF="org/apache/maven/plugin/PluginCacheManager.html#setDynaTagLibCache(java.util.Properties)"><B>setDynaTagLibCache(Properties)</B></A> -
Method in class org.apache.maven.plugin.<A HREF="org/apache/maven/plugin/PluginCacheManager.html">PluginCacheManager</A>
<DD>&nbsp;
<DT><A HREF="org/apache/maven/jelly/JellyBuildListener.html#setEmacsMode(boolean)"><B>setEmacsMode(boolean)</B></A> -
Method in class org.apache.maven.jelly.<A HREF="org/apache/maven/jelly/JellyBuildListener.html">JellyBuildListener</A>
<DD>Sets this logger to produce emacs (and other editor) friendly output.
<DT><A HREF="org/apache/maven/jelly/MavenJellyContext.html#setEmacsModeOn(java.lang.Boolean)"><B>setEmacsModeOn(Boolean)</B></A> -
Method in class org.apache.maven.jelly.<A HREF="org/apache/maven/jelly/MavenJellyContext.html">MavenJellyContext</A>
<DD>Set the emacs mode flag.
<DT><A HREF="org/apache/maven/project/Contributor.html#setEmail(java.lang.String)"><B>setEmail(String)</B></A> -
Method in class org.apache.maven.project.<A HREF="org/apache/maven/project/Contributor.html">Contributor</A>
<DD>Sets the email attribute of the Contributor object
<DT><A HREF="org/apache/maven/jelly/tags/maven/ReactorTag.html#setExcludes(java.lang.String)"><B>setExcludes(String)</B></A> -
Method in class org.apache.maven.jelly.tags.maven.<A HREF="org/apache/maven/jelly/tags/maven/ReactorTag.html">ReactorTag</A>
<DD>Set the excludes used to find projects.
<DT><A HREF="org/apache/maven/project/Project.html#setExtend(java.lang.String)"><B>setExtend(String)</B></A> -
Method in class org.apache.maven.project.<A HREF="org/apache/maven/project/Project.html">Project</A>
<DD>Set the path to the file that this project extends.
<DT><A HREF="org/apache/maven/jelly/tags/maven/InputTag.html#setFile(java.io.File)"><B>setFile(File)</B></A> -
Method in class org.apache.maven.jelly.tags.maven.<A HREF="org/apache/maven/jelly/tags/maven/InputTag.html">InputTag</A>
<DD>Set output file.
<DT><A HREF="org/apache/maven/project/Project.html#setFile(java.io.File)"><B>setFile(File)</B></A> -
Method in class org.apache.maven.project.<A HREF="org/apache/maven/project/Project.html">Project</A>
<DD>Set the file that this POM was derived from.
<DT><A HREF="org/apache/maven/util/MD5Sum.html#setFile(java.io.File)"><B>setFile(File)</B></A> -
Method in class org.apache.maven.util.<A HREF="org/apache/maven/util/MD5Sum.html">MD5Sum</A>
<DD>Set the file to perform the checksum on.
<DT><A HREF="org/apache/maven/jelly/tags/maven/ReactorTag.html#setGlob(java.lang.String)"><B>setGlob(String)</B></A> -
Method in class org.apache.maven.jelly.tags.maven.<A HREF="org/apache/maven/jelly/tags/maven/ReactorTag.html">ReactorTag</A>
<DD><B>Deprecated.</B>&nbsp;<I>Use includes/excludes instead.</I>
<DT><A HREF="org/apache/maven/plugin/PluginCacheManager.html#setGoalCache(java.util.Properties)"><B>setGoalCache(Properties)</B></A> -
Method in class org.apache.maven.plugin.<A HREF="org/apache/maven/plugin/PluginCacheManager.html">PluginCacheManager</A>
<DD>&nbsp;
<DT><A HREF="org/apache/maven/ant/MavenTask.html#setGoalName(java.lang.String)"><B>setGoalName(String)</B></A> -
Method in class org.apache.maven.ant.<A HREF="org/apache/maven/ant/MavenTask.html">MavenTask</A>
<DD>Sets the value of goalName
<DT><A HREF="org/apache/maven/project/Project.html#setGoalNames(java.util.List)"><B>setGoalNames(List)</B></A> -
Method in class org.apache.maven.project.<A HREF="org/apache/maven/project/Project.html">Project</A>
<DD>Set the goal names to be satisfied.
<DT><A HREF="org/apache/maven/project/Project.html#setGoalNames(java.lang.String)"><B>setGoalNames(String)</B></A> -
Method in class org.apache.maven.project.<A HREF="org/apache/maven/project/Project.html">Project</A>
<DD>Set goals as a CSV list.
<DT><A HREF="org/apache/maven/jelly/tags/maven/MavenTag.html#setGoals(java.lang.String)"><B>setGoals(String)</B></A> -
Method in class org.apache.maven.jelly.tags.maven.<A HREF="org/apache/maven/jelly/tags/maven/MavenTag.html">MavenTag</A>
<DD>Setter for the goals property
<DT><A HREF="org/apache/maven/project/Project.html#setGroupId(java.lang.String)"><B>setGroupId(String)</B></A> -
Method in class org.apache.maven.project.<A HREF="org/apache/maven/project/Project.html">Project</A>
<DD>Set the project group id.
<DT><A HREF="org/apache/maven/project/Dependency.html#setGroupId(java.lang.String)"><B>setGroupId(String)</B></A> -
Method in class org.apache.maven.project.<A HREF="org/apache/maven/project/Dependency.html">Dependency</A>
<DD>Set the group id.
<DT><A HREF="org/apache/maven/project/Project.html#setGumpRepositoryId(java.lang.String)"><B>setGumpRepositoryId(String)</B></A> -
Method in class org.apache.maven.project.<A HREF="org/apache/maven/project/Project.html">Project</A>
<DD>Set the gump repository descriptor.
<DT><A HREF="org/apache/maven/jelly/tags/maven/AddPathTag.html#setId(java.lang.String)"><B>setId(String)</B></A> -
Method in class org.apache.maven.jelly.tags.maven.<A HREF="org/apache/maven/jelly/tags/maven/AddPathTag.html">AddPathTag</A>
<DD>Setter for the id property
<DT><A HREF="org/apache/maven/project/Dependency.html#setId(java.lang.String)"><B>setId(String)</B></A> -
Method in class org.apache.maven.project.<A HREF="org/apache/maven/project/Dependency.html">Dependency</A>
<DD>Set the id for this dependency.
<DT><A HREF="org/apache/maven/project/BaseObject.html#setId(java.lang.String)"><B>setId(String)</B></A> -
Method in class org.apache.maven.project.<A HREF="org/apache/maven/project/BaseObject.html">BaseObject</A>
<DD>Sets the id attribute of the BaseObject object
<DT><A HREF="org/apache/maven/verifier/DependencyVerifier.html#setIgnoreErrors(boolean)"><B>setIgnoreErrors(boolean)</B></A> -
Method in class org.apache.maven.verifier.<A HREF="org/apache/maven/verifier/DependencyVerifier.html">DependencyVerifier</A>
<DD>Sets the ignoreErrors flag.
<DT><A HREF="org/apache/maven/jelly/tags/maven/MavenTag.html#setIgnoreFailures(boolean)"><B>setIgnoreFailures(boolean)</B></A> -
Method in class org.apache.maven.jelly.tags.maven.<A HREF="org/apache/maven/jelly/tags/maven/MavenTag.html">MavenTag</A>
<DD>Set the ignore failures flag.
<DT><A HREF="org/apache/maven/project/Project.html#setInceptionYear(java.lang.String)"><B>setInceptionYear(String)</B></A> -
Method in class org.apache.maven.project.<A HREF="org/apache/maven/project/Project.html">Project</A>
<DD>Sets the inceptionYear attribute of the Project object.
<DT><A HREF="org/apache/maven/jelly/tags/maven/ReactorTag.html#setIncludes(java.lang.String)"><B>setIncludes(String)</B></A> -
Method in class org.apache.maven.jelly.tags.maven.<A HREF="org/apache/maven/jelly/tags/maven/ReactorTag.html">ReactorTag</A>
<DD>Set the includes used to find projects.
<DT><A HREF="org/apache/maven/project/Build.html#setIntegrationUnitTestSourceDirectory(java.lang.String)"><B>setIntegrationUnitTestSourceDirectory(String)</B></A> -
Method in class org.apache.maven.project.<A HREF="org/apache/maven/project/Build.html">Build</A>
<DD>Set the integration unit test source direcotry.
<DT><A HREF="org/apache/maven/project/Project.html#setIssueTrackingUrl(java.lang.String)"><B>setIssueTrackingUrl(String)</B></A> -
Method in class org.apache.maven.project.<A HREF="org/apache/maven/project/Project.html">Project</A>
<DD>Sets the issueTrackingUrl attribute of the Project object.
<DT><A HREF="org/apache/maven/project/Dependency.html#setJar(java.lang.String)"><B>setJar(String)</B></A> -
Method in class org.apache.maven.project.<A HREF="org/apache/maven/project/Dependency.html">Dependency</A>
<DD>Set the name of the JAR if it cannot be synthesized from the id and
 version.
<DT><A HREF="org/apache/maven/project/Project.html#setLicenses(java.util.List)"><B>setLicenses(List)</B></A> -
Method in class org.apache.maven.project.<A HREF="org/apache/maven/project/Project.html">Project</A>
<DD>Set licenses for this project.
<DT><A HREF="org/apache/maven/project/Project.html#setLogo(java.lang.String)"><B>setLogo(String)</B></A> -
Method in class org.apache.maven.project.<A HREF="org/apache/maven/project/Project.html">Project</A>
<DD>Set the project logo image URL.
<DT><A HREF="org/apache/maven/project/Organization.html#setLogo(java.lang.String)"><B>setLogo(String)</B></A> -
Method in class org.apache.maven.project.<A HREF="org/apache/maven/project/Organization.html">Organization</A>
<DD>Sets the logo text attribute of the Organization object.
<DT><A HREF="org/apache/maven/project/Project.html#setMailingLists(java.util.List)"><B>setMailingLists(List)</B></A> -
Method in class org.apache.maven.project.<A HREF="org/apache/maven/project/Project.html">Project</A>
<DD>Set mailing lists.
<DT><A HREF="org/apache/maven/ant/MavenTask.html#setMavenHome(java.lang.String)"><B>setMavenHome(String)</B></A> -
Method in class org.apache.maven.ant.<A HREF="org/apache/maven/ant/MavenTask.html">MavenTask</A>
<DD>Sets the value of mavenHome
<DT><A HREF="org/apache/maven/jelly/MavenJellyContext.html#setMavenJarOverride(java.lang.Boolean)"><B>setMavenJarOverride(Boolean)</B></A> -
Method in class org.apache.maven.jelly.<A HREF="org/apache/maven/jelly/MavenJellyContext.html">MavenJellyContext</A>
<DD>Set the flag indicating the use of the JAR overriding facility.
<DT><A HREF="org/apache/maven/jelly/MavenJellyContext.html#setMavenRepoLocal(java.lang.String)"><B>setMavenRepoLocal(String)</B></A> -
Method in class org.apache.maven.jelly.<A HREF="org/apache/maven/jelly/MavenJellyContext.html">MavenJellyContext</A>
<DD>Set the mavenRepoRemote attribute.
<DT><A HREF="org/apache/maven/jelly/MavenJellyContext.html#setMavenRepoRemotes(java.util.List)"><B>setMavenRepoRemotes(List)</B></A> -
Method in class org.apache.maven.jelly.<A HREF="org/apache/maven/jelly/MavenJellyContext.html">MavenJellyContext</A>
<DD>Set the mavenRepoRemote attribute.
<DT><A HREF="org/apache/maven/jelly/MavenJellyContext.html#setMavenSession(org.apache.maven.MavenSession)"><B>setMavenSession(MavenSession)</B></A> -
Method in class org.apache.maven.jelly.<A HREF="org/apache/maven/jelly/MavenJellyContext.html">MavenJellyContext</A>
<DD>Set the mavenSession attribute.
<DT><A HREF="org/apache/maven/project/Build.html#setNagEmailAddress(java.lang.String)"><B>setNagEmailAddress(String)</B></A> -
Method in class org.apache.maven.project.<A HREF="org/apache/maven/project/Build.html">Build</A>
<DD>Set the nag email address, which is used for automated build failures.
<DT><A HREF="org/apache/maven/project/License.html#setName(java.lang.String)"><B>setName(String)</B></A> -
Method in class org.apache.maven.project.<A HREF="org/apache/maven/project/License.html">License</A>
<DD>Sets the name.
<DT><A HREF="org/apache/maven/project/BaseObject.html#setName(java.lang.String)"><B>setName(String)</B></A> -
Method in class org.apache.maven.project.<A HREF="org/apache/maven/project/BaseObject.html">BaseObject</A>
<DD>Sets the name attribute
<DT><A HREF="org/apache/maven/jelly/MavenJellyContext.html#setOnline(java.lang.Boolean)"><B>setOnline(Boolean)</B></A> -
Method in class org.apache.maven.jelly.<A HREF="org/apache/maven/jelly/MavenJellyContext.html">MavenJellyContext</A>
<DD>Set the online flag.
<DT><A HREF="org/apache/maven/project/Project.html#setOrganization(org.apache.maven.project.Organization)"><B>setOrganization(Organization)</B></A> -
Method in class org.apache.maven.project.<A HREF="org/apache/maven/project/Project.html">Project</A>
<DD>Sets the project Organization.
<DT><A HREF="org/apache/maven/project/Contributor.html#setOrganization(java.lang.String)"><B>setOrganization(String)</B></A> -
Method in class org.apache.maven.project.<A HREF="org/apache/maven/project/Contributor.html">Contributor</A>
<DD>Sets the organization attribute of the Contributor object
<DT><A HREF="org/apache/maven/jelly/tags/maven/ConcatTag.html#setOutputFile(java.io.File)"><B>setOutputFile(File)</B></A> -
Method in class org.apache.maven.jelly.tags.maven.<A HREF="org/apache/maven/jelly/tags/maven/ConcatTag.html">ConcatTag</A>
<DD>Set output file.
<DT><A HREF="org/apache/maven/util/Expand.html#setOverwrite(boolean)"><B>setOverwrite(boolean)</B></A> -
Method in class org.apache.maven.util.<A HREF="org/apache/maven/util/Expand.html">Expand</A>
<DD>Should we overwrite files in dest, even if they are newer than the
 corresponding entries in the archive?
<DT><A HREF="org/apache/maven/project/Project.html#setPackage(java.lang.String)"><B>setPackage(String)</B></A> -
Method in class org.apache.maven.project.<A HREF="org/apache/maven/project/Project.html">Project</A>
<DD>Sets the package attribute of the Project object.
<DT><A HREF="org/apache/maven/project/Project.html#setPackageGroups(java.util.List)"><B>setPackageGroups(List)</B></A> -
Method in class org.apache.maven.project.<A HREF="org/apache/maven/project/Project.html">Project</A>
<DD>Sets the list of PackageGroup instances used for documenting the packages
<DT><A HREF="org/apache/maven/project/PackageGroup.html#setPackages(java.lang.String)"><B>setPackages(String)</B></A> -
Method in class org.apache.maven.project.<A HREF="org/apache/maven/project/PackageGroup.html">PackageGroup</A>
<DD>Sets the package patterns to use.
<DT><A HREF="org/apache/maven/repository/Artifact.html#setPath(java.lang.String)"><B>setPath(String)</B></A> -
Method in interface org.apache.maven.repository.<A HREF="org/apache/maven/repository/Artifact.html">Artifact</A>
<DD>Set the path to the artifact.
<DT><A HREF="org/apache/maven/repository/AbstractArtifact.html#setPath(java.lang.String)"><B>setPath(String)</B></A> -
Method in class org.apache.maven.repository.<A HREF="org/apache/maven/repository/AbstractArtifact.html">AbstractArtifact</A>
<DD>&nbsp;
<DT><A HREF="org/apache/maven/plugin/PluginCacheManager.html#setPluginCache(java.util.Properties)"><B>setPluginCache(Properties)</B></A> -
Method in class org.apache.maven.plugin.<A HREF="org/apache/maven/plugin/PluginCacheManager.html">PluginCacheManager</A>
<DD>&nbsp;
<DT><A HREF="org/apache/maven/plugin/PluginCacheManager.html#setPluginDynaTagDepsCache(java.util.Properties)"><B>setPluginDynaTagDepsCache(Properties)</B></A> -
Method in class org.apache.maven.plugin.<A HREF="org/apache/maven/plugin/PluginCacheManager.html">PluginCacheManager</A>
<DD>Set the pluginDynaTagDepsCache attribute.
<DT><A HREF="org/apache/maven/MavenSession.html#setPluginManager(org.apache.maven.plugin.PluginManager)"><B>setPluginManager(PluginManager)</B></A> -
Method in class org.apache.maven.<A HREF="org/apache/maven/MavenSession.html">MavenSession</A>
<DD>&nbsp;
<DT><A HREF="org/apache/maven/plugin/PluginCacheManager.html#setPluginScript(java.io.File)"><B>setPluginScript(File)</B></A> -
Method in class org.apache.maven.plugin.<A HREF="org/apache/maven/plugin/PluginCacheManager.html">PluginCacheManager</A>
<DD>&nbsp;
<DT><A HREF="org/apache/maven/plugin/DefaultPluginCacheManager.html#setPluginScript(java.io.File)"><B>setPluginScript(File)</B></A> -
Method in class org.apache.maven.plugin.<A HREF="org/apache/maven/plugin/DefaultPluginCacheManager.html">DefaultPluginCacheManager</A>
<DD>&nbsp;
<DT><A HREF="org/apache/maven/plugin/PluginCacheManager.html#setPluginsDir(java.io.File)"><B>setPluginsDir(File)</B></A> -
Method in class org.apache.maven.plugin.<A HREF="org/apache/maven/plugin/PluginCacheManager.html">PluginCacheManager</A>
<DD>Set the pluginsDir attribute.
<DT><A HREF="org/apache/maven/plugin/DefaultPluginCacheManager.html#setPluginsDir(java.io.File)"><B>setPluginsDir(File)</B></A> -
Method in class org.apache.maven.plugin.<A HREF="org/apache/maven/plugin/DefaultPluginCacheManager.html">DefaultPluginCacheManager</A>
<DD>Set the pluginsDir attribute.
<DT><A HREF="org/apache/maven/project/Project.html#setPomVersion(java.lang.String)"><B>setPomVersion(String)</B></A> -
Method in class org.apache.maven.project.<A HREF="org/apache/maven/project/Project.html">Project</A>
<DD>Sets the version attribute of the Project object
<DT><A HREF="org/apache/maven/jelly/tags/maven/ReactorTag.html#setPostProcessing(boolean)"><B>setPostProcessing(boolean)</B></A> -
Method in class org.apache.maven.jelly.tags.maven.<A HREF="org/apache/maven/jelly/tags/maven/ReactorTag.html">ReactorTag</A>
<DD>Set the postProcessing attribute.
<DT><A HREF="org/apache/maven/AbstractMavenComponent.html#setProject(org.apache.maven.project.Project)"><B>setProject(Project)</B></A> -
Method in class org.apache.maven.<A HREF="org/apache/maven/AbstractMavenComponent.html">AbstractMavenComponent</A>
<DD>&nbsp;
<DT><A HREF="org/apache/maven/jelly/MavenJellyContext.html#setProject(org.apache.maven.project.Project)"><B>setProject(Project)</B></A> -
Method in class org.apache.maven.jelly.<A HREF="org/apache/maven/jelly/MavenJellyContext.html">MavenJellyContext</A>
<DD>Set the maven project.
<DT><A HREF="org/apache/maven/jelly/tags/maven/SnapshotSignature.html#setProject(org.apache.maven.project.Project)"><B>setProject(Project)</B></A> -
Method in class org.apache.maven.jelly.tags.maven.<A HREF="org/apache/maven/jelly/tags/maven/SnapshotSignature.html">SnapshotSignature</A>
<DD>Set the maven project object.
<DT><A HREF="org/apache/maven/ant/MavenTask.html#setProjectBuildFile(java.lang.String)"><B>setProjectBuildFile(String)</B></A> -
Method in class org.apache.maven.ant.<A HREF="org/apache/maven/ant/MavenTask.html">MavenTask</A>
<DD>Sets the value of projectBuildFile (e.g.
<DT><A HREF="org/apache/maven/jelly/tags/maven/PomTag.html#setProjectDescriptor(java.io.File)"><B>setProjectDescriptor(File)</B></A> -
Method in class org.apache.maven.jelly.tags.maven.<A HREF="org/apache/maven/jelly/tags/maven/PomTag.html">PomTag</A>
<DD>Set MavenSession project descriptor.
<DT><A HREF="org/apache/maven/ant/MavenTask.html#setProjectFileName(java.lang.String)"><B>setProjectFileName(String)</B></A> -
Method in class org.apache.maven.ant.<A HREF="org/apache/maven/ant/MavenTask.html">MavenTask</A>
<DD>Sets the value of projectFileName (e.g.
<DT><A HREF="org/apache/maven/jelly/tags/maven/WerkzDependencyResolver.html#setProjects(java.util.List)"><B>setProjects(List)</B></A> -
Method in class org.apache.maven.jelly.tags.maven.<A HREF="org/apache/maven/jelly/tags/maven/WerkzDependencyResolver.html">WerkzDependencyResolver</A>
<DD>&nbsp;
<DT><A HREF="org/apache/maven/jelly/tags/maven/GraphDependencyResolver.html#setProjects(java.util.List)"><B>setProjects(List)</B></A> -
Method in class org.apache.maven.jelly.tags.maven.<A HREF="org/apache/maven/jelly/tags/maven/GraphDependencyResolver.html">GraphDependencyResolver</A>
<DD>&nbsp;
<DT><A HREF="org/apache/maven/jelly/tags/maven/DependencyResolverInterface.html#setProjects(java.util.List)"><B>setProjects(List)</B></A> -
Method in interface org.apache.maven.jelly.tags.maven.<A HREF="org/apache/maven/jelly/tags/maven/DependencyResolverInterface.html">DependencyResolverInterface</A>
<DD>Set a list of projects to process.
<DT><A HREF="org/apache/maven/jelly/tags/maven/DependencyResolver.html#setProjects(java.util.List)"><B>setProjects(List)</B></A> -
Method in class org.apache.maven.jelly.tags.maven.<A HREF="org/apache/maven/jelly/tags/maven/DependencyResolver.html">DependencyResolver</A>
<DD>&nbsp;
<DT><A HREF="org/apache/maven/project/BaseObject.html#setProperties(java.util.List)"><B>setProperties(List)</B></A> -
Method in class org.apache.maven.project.<A HREF="org/apache/maven/project/BaseObject.html">BaseObject</A>
<DD>Set meta properties.
<DT><A HREF="org/apache/maven/project/SourceModification.html#setProperty(java.lang.String)"><B>setProperty(String)</B></A> -
Method in class org.apache.maven.project.<A HREF="org/apache/maven/project/SourceModification.html">SourceModification</A>
<DD>Sets the property attribute of the SourceModification object
<DT><A HREF="org/apache/maven/jelly/JellyPropsHandler.html#setProperty(java.lang.String, java.lang.String)"><B>setProperty(String, String)</B></A> -
Method in class org.apache.maven.jelly.<A HREF="org/apache/maven/jelly/JellyPropsHandler.html">JellyPropsHandler</A>
<DD>Set an ant property.
<DT><A HREF="org/apache/maven/jelly/MavenJellyContext.html#setProxyHost(java.lang.String)"><B>setProxyHost(String)</B></A> -
Method in class org.apache.maven.jelly.<A HREF="org/apache/maven/jelly/MavenJellyContext.html">MavenJellyContext</A>
<DD>Set the proxy host.
<DT><A HREF="org/apache/maven/jelly/MavenJellyContext.html#setProxyPassword(java.lang.String)"><B>setProxyPassword(String)</B></A> -
Method in class org.apache.maven.jelly.<A HREF="org/apache/maven/jelly/MavenJellyContext.html">MavenJellyContext</A>
<DD>Set the proxy password.
<DT><A HREF="org/apache/maven/jelly/MavenJellyContext.html#setProxyPort(java.lang.String)"><B>setProxyPort(String)</B></A> -
Method in class org.apache.maven.jelly.<A HREF="org/apache/maven/jelly/MavenJellyContext.html">MavenJellyContext</A>
<DD>Set the proxy port.
<DT><A HREF="org/apache/maven/jelly/MavenJellyContext.html#setProxyUserName(java.lang.String)"><B>setProxyUserName(String)</B></A> -
Method in class org.apache.maven.jelly.<A HREF="org/apache/maven/jelly/MavenJellyContext.html">MavenJellyContext</A>
<DD>Set the proxy user name.
<DT><A HREF="org/apache/maven/jelly/tags/maven/ReactorTag.html#setReactorXml(java.io.File)"><B>setReactorXml(File)</B></A> -
Method in class org.apache.maven.jelly.tags.maven.<A HREF="org/apache/maven/jelly/tags/maven/ReactorTag.html">ReactorTag</A>
<DD>Set the reactorXml attribute.
<DT><A HREF="org/apache/maven/jelly/tags/maven/AddPathTag.html#setRefid(java.lang.String)"><B>setRefid(String)</B></A> -
Method in class org.apache.maven.jelly.tags.maven.<A HREF="org/apache/maven/jelly/tags/maven/AddPathTag.html">AddPathTag</A>
<DD>Setter for the refid property
<DT><A HREF="org/apache/maven/jelly/MavenJellyContext.html#setRemoteRepositoryEnabled(java.lang.Boolean)"><B>setRemoteRepositoryEnabled(Boolean)</B></A> -
Method in class org.apache.maven.jelly.<A HREF="org/apache/maven/jelly/MavenJellyContext.html">MavenJellyContext</A>
<DD>Set flag indicating if the remote repository is enabled for use.
<DT><A HREF="org/apache/maven/project/Project.html#setReports(java.util.List)"><B>setReports(List)</B></A> -
Method in class org.apache.maven.project.<A HREF="org/apache/maven/project/Project.html">Project</A>
<DD>Set a list of dependencies.
<DT><A HREF="org/apache/maven/project/Project.html#setRepository(org.apache.maven.project.Repository)"><B>setRepository(Repository)</B></A> -
Method in class org.apache.maven.project.<A HREF="org/apache/maven/project/Project.html">Project</A>
<DD>Set the repository for this project.
<DT><A HREF="org/apache/maven/project/UnitTest.html#setResources(java.util.List)"><B>setResources(List)</B></A> -
Method in class org.apache.maven.project.<A HREF="org/apache/maven/project/UnitTest.html">UnitTest</A>
<DD>Set the resources.
<DT><A HREF="org/apache/maven/project/Build.html#setResources(java.util.List)"><B>setResources(List)</B></A> -
Method in class org.apache.maven.project.<A HREF="org/apache/maven/project/Build.html">Build</A>
<DD>Set the resources.
<DT><A HREF="org/apache/maven/MavenSession.html#setRootContext(org.apache.maven.jelly.MavenJellyContext)"><B>setRootContext(MavenJellyContext)</B></A> -
Method in class org.apache.maven.<A HREF="org/apache/maven/MavenSession.html">MavenSession</A>
<DD>&nbsp;
<DT><A HREF="org/apache/maven/cli/App.html#setRootContext(org.apache.maven.jelly.MavenJellyContext)"><B>setRootContext(MavenJellyContext)</B></A> -
Method in class org.apache.maven.cli.<A HREF="org/apache/maven/cli/App.html">App</A>
<DD>Set Jelly rootContext.
<DT><A HREF="org/apache/maven/MavenSession.html#setRootDescriptorFile(java.io.File)"><B>setRootDescriptorFile(File)</B></A> -
Static method in class org.apache.maven.<A HREF="org/apache/maven/MavenSession.html">MavenSession</A>
<DD>&nbsp;
<DT><A HREF="org/apache/maven/MavenSession.html#setRootProject(org.apache.maven.project.Project)"><B>setRootProject(Project)</B></A> -
Method in class org.apache.maven.<A HREF="org/apache/maven/MavenSession.html">MavenSession</A>
<DD>&nbsp;
<DT><A HREF="org/apache/maven/project/Project.html#setShortDescription(java.lang.String)"><B>setShortDescription(String)</B></A> -
Method in class org.apache.maven.project.<A HREF="org/apache/maven/project/Project.html">Project</A>
<DD>Set short description
<DT><A HREF="org/apache/maven/project/Project.html#setSiteAddress(java.lang.String)"><B>setSiteAddress(String)</B></A> -
Method in class org.apache.maven.project.<A HREF="org/apache/maven/project/Project.html">Project</A>
<DD>Set the site address where the documentation lives.
<DT><A HREF="org/apache/maven/project/Project.html#setSiteDirectory(java.lang.String)"><B>setSiteDirectory(String)</B></A> -
Method in class org.apache.maven.project.<A HREF="org/apache/maven/project/Project.html">Project</A>
<DD>Set the site directory where the documentation
 lives.
<DT><A HREF="org/apache/maven/project/Build.html#setSourceDirectory(java.lang.String)"><B>setSourceDirectory(String)</B></A> -
Method in class org.apache.maven.project.<A HREF="org/apache/maven/project/Build.html">Build</A>
<DD>Adds a feature to the SourceDirectory attribute of the Build object
<DT><A HREF="org/apache/maven/project/Build.html#setSourceModification(java.util.List)"><B>setSourceModification(List)</B></A> -
Method in class org.apache.maven.project.<A HREF="org/apache/maven/project/Build.html">Build</A>
<DD>Set the source modifications.
<DT><A HREF="org/apache/maven/util/Expand.html#setSrc(java.io.File)"><B>setSrc(File)</B></A> -
Method in class org.apache.maven.util.<A HREF="org/apache/maven/util/Expand.html">Expand</A>
<DD>Set the path to zip-file.
<DT><A HREF="org/apache/maven/project/MailingList.html#setSubscribe(java.lang.String)"><B>setSubscribe(String)</B></A> -
Method in class org.apache.maven.project.<A HREF="org/apache/maven/project/MailingList.html">MailingList</A>
<DD>Sets the subscribe attribute of the MailingList object
<DT><A HREF="org/apache/maven/jelly/MavenExpressionFactory.html#setSupportAntVariables(boolean)"><B>setSupportAntVariables(boolean)</B></A> -
Method in class org.apache.maven.jelly.<A HREF="org/apache/maven/jelly/MavenExpressionFactory.html">MavenExpressionFactory</A>
<DD>Sets whether we should allow Ant-style expresssions, using dots as part
 of variable name
<DT><A HREF="org/apache/maven/project/Version.html#setTag(java.lang.String)"><B>setTag(String)</B></A> -
Method in class org.apache.maven.project.<A HREF="org/apache/maven/project/Version.html">Version</A>
<DD>Sets the tag attribute of the Distribution object
<DT><A HREF="org/apache/maven/project/Resource.html#setTargetPath(java.lang.String)"><B>setTargetPath(String)</B></A> -
Method in class org.apache.maven.project.<A HREF="org/apache/maven/project/Resource.html">Resource</A>
<DD>Set the target directory where resources are placed.
<DT><A HREF="org/apache/maven/project/PackageGroup.html#setTitle(java.lang.String)"><B>setTitle(String)</B></A> -
Method in class org.apache.maven.project.<A HREF="org/apache/maven/project/PackageGroup.html">PackageGroup</A>
<DD>Sets the title of this package group.
<DT><A HREF="org/apache/maven/ant/MavenTask.html#setToolsJar(java.lang.String)"><B>setToolsJar(String)</B></A> -
Method in class org.apache.maven.ant.<A HREF="org/apache/maven/ant/MavenTask.html">MavenTask</A>
<DD>Sets the value of toolsJar
<DT><A HREF="org/apache/maven/project/Dependency.html#setType(java.lang.String)"><B>setType(String)</B></A> -
Method in class org.apache.maven.project.<A HREF="org/apache/maven/project/Dependency.html">Dependency</A>
<DD>Sets the dependency type such as "compile" or "test"
<DT><A HREF="org/apache/maven/project/Build.html#setUnitTest(org.apache.maven.project.UnitTest)"><B>setUnitTest(UnitTest)</B></A> -
Method in class org.apache.maven.project.<A HREF="org/apache/maven/project/Build.html">Build</A>
<DD>Add a set of unit test patterns.
<DT><A HREF="org/apache/maven/project/Build.html#setUnitTestSourceDirectory(java.lang.String)"><B>setUnitTestSourceDirectory(String)</B></A> -
Method in class org.apache.maven.project.<A HREF="org/apache/maven/project/Build.html">Build</A>
<DD>Set the unit test source direcotry.
<DT><A HREF="org/apache/maven/project/MailingList.html#setUnsubscribe(java.lang.String)"><B>setUnsubscribe(String)</B></A> -
Method in class org.apache.maven.project.<A HREF="org/apache/maven/project/MailingList.html">MailingList</A>
<DD>Sets the unsubscribe attribute of the MailingList object
<DT><A HREF="org/apache/maven/project/Repository.html#setUrl(java.lang.String)"><B>setUrl(String)</B></A> -
Method in class org.apache.maven.project.<A HREF="org/apache/maven/project/Repository.html">Repository</A>
<DD>Sets the url attribute of the Repository object
<DT><A HREF="org/apache/maven/project/Project.html#setUrl(java.lang.String)"><B>setUrl(String)</B></A> -
Method in class org.apache.maven.project.<A HREF="org/apache/maven/project/Project.html">Project</A>
<DD>Sets the url attribute of the Project object.
<DT><A HREF="org/apache/maven/project/Organization.html#setUrl(java.lang.String)"><B>setUrl(String)</B></A> -
Method in class org.apache.maven.project.<A HREF="org/apache/maven/project/Organization.html">Organization</A>
<DD>Sets the url attribute of the Organization object
<DT><A HREF="org/apache/maven/project/License.html#setUrl(java.lang.String)"><B>setUrl(String)</B></A> -
Method in class org.apache.maven.project.<A HREF="org/apache/maven/project/License.html">License</A>
<DD>Sets the url.
<DT><A HREF="org/apache/maven/project/Dependency.html#setUrl(java.lang.String)"><B>setUrl(String)</B></A> -
Method in class org.apache.maven.project.<A HREF="org/apache/maven/project/Dependency.html">Dependency</A>
<DD>Set the name of url for the dependency.
<DT><A HREF="org/apache/maven/project/Contributor.html#setUrl(java.lang.String)"><B>setUrl(String)</B></A> -
Method in class org.apache.maven.project.<A HREF="org/apache/maven/project/Contributor.html">Contributor</A>
<DD>Set the url attribute of the Contributor object
<DT><A HREF="org/apache/maven/jelly/tags/maven/PomTag.html#setVar(java.lang.String)"><B>setVar(String)</B></A> -
Method in class org.apache.maven.jelly.tags.maven.<A HREF="org/apache/maven/jelly/tags/maven/PomTag.html">PomTag</A>
<DD>Set var name for the POM.
<DT><A HREF="org/apache/maven/project/Dependency.html#setVersion(java.lang.String)"><B>setVersion(String)</B></A> -
Method in class org.apache.maven.project.<A HREF="org/apache/maven/project/Dependency.html">Dependency</A>
<DD>Set the version for this dependency.
<DT><A HREF="org/apache/maven/project/Project.html#setVersions(java.util.List)"><B>setVersions(List)</B></A> -
Method in class org.apache.maven.project.<A HREF="org/apache/maven/project/Project.html">Project</A>
<DD>Set the versions for this project.
<DT><A HREF="org/apache/maven/jelly/MavenJellyContext.html#setWerkzProject(com.werken.werkz.WerkzProject)"><B>setWerkzProject(WerkzProject)</B></A> -
Method in class org.apache.maven.jelly.<A HREF="org/apache/maven/jelly/MavenJellyContext.html">MavenJellyContext</A>
<DD>retrieve the werkz project object
<DT><A HREF="org/apache/maven/jelly/MavenJellyContext.html#setXMLOutput(org.apache.commons.jelly.XMLOutput)"><B>setXMLOutput(XMLOutput)</B></A> -
Method in class org.apache.maven.jelly.<A HREF="org/apache/maven/jelly/MavenJellyContext.html">MavenJellyContext</A>
<DD>Set the jelly output sink.
<DT><A HREF="org/apache/maven/MavenConstants.html#SNAPSHOT_SIGNIFIER"><B>SNAPSHOT_SIGNIFIER</B></A> -
Static variable in class org.apache.maven.<A HREF="org/apache/maven/MavenConstants.html">MavenConstants</A>
<DD>Snapshot JAR signifier tag.
<DT><A HREF="org/apache/maven/jelly/tags/maven/SnapshotSignature.html"><B>SnapshotSignature</B></A> - class org.apache.maven.jelly.tags.maven.<A HREF="org/apache/maven/jelly/tags/maven/SnapshotSignature.html">SnapshotSignature</A>.<DD>Create snapshot signature for non-release JARs and distributions.<DT><A HREF="org/apache/maven/jelly/tags/maven/SnapshotSignature.html#SnapshotSignature()"><B>SnapshotSignature()</B></A> -
Constructor for class org.apache.maven.jelly.tags.maven.<A HREF="org/apache/maven/jelly/tags/maven/SnapshotSignature.html">SnapshotSignature</A>
<DD>&nbsp;
<DT><A HREF="org/apache/maven/project/SourceModification.html"><B>SourceModification</B></A> - class org.apache.maven.project.<A HREF="org/apache/maven/project/SourceModification.html">SourceModification</A>.<DD>A source modification is made when a given class or property is present
 during a build.<DT><A HREF="org/apache/maven/project/SourceModification.html#SourceModification()"><B>SourceModification()</B></A> -
Constructor for class org.apache.maven.project.<A HREF="org/apache/maven/project/SourceModification.html">SourceModification</A>
<DD>&nbsp;
<DT><A HREF="org/apache/maven/StringTool.html#splitStringAtLastDelim(java.lang.String, java.lang.String)"><B>splitStringAtLastDelim(String, String)</B></A> -
Method in class org.apache.maven.<A HREF="org/apache/maven/StringTool.html">StringTool</A>
<DD>Splits a string at the last delimiter.
<DT><A HREF="org/apache/maven/project/Project.html#standardToLegacyId(java.lang.String)"><B>standardToLegacyId(String)</B></A> -
Static method in class org.apache.maven.project.<A HREF="org/apache/maven/project/Project.html">Project</A>
<DD>This method is to support methods are expecting legacy ids.
<DT><A HREF="org/apache/maven/plugin/PluginCacheManager.html#startElement(java.lang.String, java.lang.String, java.lang.String, org.xml.sax.Attributes)"><B>startElement(String, String, String, Attributes)</B></A> -
Method in class org.apache.maven.plugin.<A HREF="org/apache/maven/plugin/PluginCacheManager.html">PluginCacheManager</A>
<DD>Handles opening elements of the xml file.
<DT><A HREF="org/apache/maven/plugin/DefaultPluginCacheManager.html#startElement(java.lang.String, java.lang.String, java.lang.String, org.xml.sax.Attributes)"><B>startElement(String, String, String, Attributes)</B></A> -
Method in class org.apache.maven.plugin.<A HREF="org/apache/maven/plugin/DefaultPluginCacheManager.html">DefaultPluginCacheManager</A>
<DD>Handles opening elements of the xml file.
<DT><A HREF="org/apache/maven/plugin/PluginCacheManager.html#startPrefixMapping(java.lang.String, java.lang.String)"><B>startPrefixMapping(String, String)</B></A> -
Method in class org.apache.maven.plugin.<A HREF="org/apache/maven/plugin/PluginCacheManager.html">PluginCacheManager</A>
<DD>We are looking for namespace declarations like the following:

 xmlns:doc="doc"

 Here we know that the given plugin.jelly script (or any jelly script used
 within Maven) has a dependency on the dyna tag lib named 'doc'.
<DT><A HREF="org/apache/maven/plugin/DefaultPluginCacheManager.html#startPrefixMapping(java.lang.String, java.lang.String)"><B>startPrefixMapping(String, String)</B></A> -
Method in class org.apache.maven.plugin.<A HREF="org/apache/maven/plugin/DefaultPluginCacheManager.html">DefaultPluginCacheManager</A>
<DD>We are looking for namespace declarations like the following:

 xmlns:doc="doc"

 Here we know that the given plugin.jelly script (or any jelly script used
 within Maven) has a dependency on the dyna tag lib named 'doc'.
<DT><A HREF="org/apache/maven/util/StringInputStream.html"><B>StringInputStream</B></A> - class org.apache.maven.util.<A HREF="org/apache/maven/util/StringInputStream.html">StringInputStream</A>.<DD>Wraps a String as an InputStream.<DT><A HREF="org/apache/maven/util/StringInputStream.html#StringInputStream(java.lang.String)"><B>StringInputStream(String)</B></A> -
Constructor for class org.apache.maven.util.<A HREF="org/apache/maven/util/StringInputStream.html">StringInputStream</A>
<DD>Composes a stream from a String
<DT><A HREF="org/apache/maven/StringTool.html"><B>StringTool</B></A> - class org.apache.maven.<A HREF="org/apache/maven/StringTool.html">StringTool</A>.<DD>&nbsp;<DT><A HREF="org/apache/maven/StringTool.html#StringTool()"><B>StringTool()</B></A> -
Constructor for class org.apache.maven.<A HREF="org/apache/maven/StringTool.html">StringTool</A>
<DD>&nbsp;
</DL>
<HR>
<A NAME="_T_"><!-- --></A><H2>
<B>T</B></H2>
<DL>
<DT><A HREF="org/apache/maven/jelly/tags/jeez/TagDefTag.html"><B>TagDefTag</B></A> - class org.apache.maven.jelly.tags.jeez.<A HREF="org/apache/maven/jelly/tags/jeez/TagDefTag.html">TagDefTag</A>.<DD>This tag defines a dynamic tag in Jelly script.<DT><A HREF="org/apache/maven/jelly/tags/jeez/TagDefTag.html#TagDefTag(org.apache.commons.jelly.impl.DynamicTagLibrary)"><B>TagDefTag(DynamicTagLibrary)</B></A> -
Constructor for class org.apache.maven.jelly.tags.jeez.<A HREF="org/apache/maven/jelly/tags/jeez/TagDefTag.html">TagDefTag</A>
<DD>&nbsp;
<DT><A HREF="org/apache/maven/jelly/JellyBuildListener.html#targetFinished(org.apache.tools.ant.BuildEvent)"><B>targetFinished(BuildEvent)</B></A> -
Method in class org.apache.maven.jelly.<A HREF="org/apache/maven/jelly/JellyBuildListener.html">JellyBuildListener</A>
<DD>&nbsp;
<DT><A HREF="org/apache/maven/jelly/JellyBuildListener.html#targetStarted(org.apache.tools.ant.BuildEvent)"><B>targetStarted(BuildEvent)</B></A> -
Method in class org.apache.maven.jelly.<A HREF="org/apache/maven/jelly/JellyBuildListener.html">JellyBuildListener</A>
<DD>&nbsp;
<DT><A HREF="org/apache/maven/jelly/tags/jeez/TargetTag.html"><B>TargetTag</B></A> - class org.apache.maven.jelly.tags.jeez.<A HREF="org/apache/maven/jelly/tags/jeez/TargetTag.html">TargetTag</A>.<DD>Wraps a Werkz <code>&lt;goal&gt;</code> to appear as an
  ant <code>&lt;target&gt;</code>.<DT><A HREF="org/apache/maven/jelly/tags/jeez/TargetTag.html#TargetTag()"><B>TargetTag()</B></A> -
Constructor for class org.apache.maven.jelly.tags.jeez.<A HREF="org/apache/maven/jelly/tags/jeez/TargetTag.html">TargetTag</A>
<DD>&nbsp;
<DT><A HREF="org/apache/maven/jelly/JellyBuildListener.html#taskFinished(org.apache.tools.ant.BuildEvent)"><B>taskFinished(BuildEvent)</B></A> -
Method in class org.apache.maven.jelly.<A HREF="org/apache/maven/jelly/JellyBuildListener.html">JellyBuildListener</A>
<DD>&nbsp;
<DT><A HREF="org/apache/maven/jelly/JellyBuildListener.html#taskStarted(org.apache.tools.ant.BuildEvent)"><B>taskStarted(BuildEvent)</B></A> -
Method in class org.apache.maven.jelly.<A HREF="org/apache/maven/jelly/JellyBuildListener.html">JellyBuildListener</A>
<DD>&nbsp;
<DT><A HREF="org/apache/maven/project/TestResource.html"><B>TestResource</B></A> - class org.apache.maven.project.<A HREF="org/apache/maven/project/TestResource.html">TestResource</A>.<DD><B>Deprecated.</B>&nbsp;<I>Resource is prefered.</I><DT><A HREF="org/apache/maven/project/TestResource.html#TestResource()"><B>TestResource()</B></A> -
Constructor for class org.apache.maven.project.<A HREF="org/apache/maven/project/TestResource.html">TestResource</A>
<DD><B>Deprecated.</B>&nbsp;&nbsp;
<DT><A HREF="org/apache/maven/MavenTool.html#toInteger(java.lang.String)"><B>toInteger(String)</B></A> -
Method in class org.apache.maven.<A HREF="org/apache/maven/MavenTool.html">MavenTool</A>
<DD>&nbsp;
<DT><A HREF="org/apache/maven/project/Resource.html#toString()"><B>toString()</B></A> -
Method in class org.apache.maven.project.<A HREF="org/apache/maven/project/Resource.html">Resource</A>
<DD>&nbsp;
<DT><A HREF="org/apache/maven/project/Dependency.html#toString()"><B>toString()</B></A> -
Method in class org.apache.maven.project.<A HREF="org/apache/maven/project/Dependency.html">Dependency</A>
<DD>Debug string.
<DT><A HREF="org/apache/maven/project/BaseObject.html#toString()"><B>toString()</B></A> -
Method in class org.apache.maven.project.<A HREF="org/apache/maven/project/BaseObject.html">BaseObject</A>
<DD>Return a string suitable for display/debugging
</DL>
<HR>
<A NAME="_U_"><!-- --></A><H2>
<B>U</B></H2>
<DL>
<DT><A HREF="org/apache/maven/project/UnitTest.html"><B>UnitTest</B></A> - class org.apache.maven.project.<A HREF="org/apache/maven/project/UnitTest.html">UnitTest</A>.<DD>Collects unit-test include and exclude patterns and resources.<DT><A HREF="org/apache/maven/project/UnitTest.html#UnitTest()"><B>UnitTest()</B></A> -
Constructor for class org.apache.maven.project.<A HREF="org/apache/maven/project/UnitTest.html">UnitTest</A>
<DD>&nbsp;
<DT><A HREF="org/apache/maven/UnknownGoalException.html"><B>UnknownGoalException</B></A> - exception org.apache.maven.<A HREF="org/apache/maven/UnknownGoalException.html">UnknownGoalException</A>.<DD>Indicates an attempt to access an unknown werkz goal.<DT><A HREF="org/apache/maven/UnknownGoalException.html#UnknownGoalException(java.lang.String)"><B>UnknownGoalException(String)</B></A> -
Constructor for class org.apache.maven.<A HREF="org/apache/maven/UnknownGoalException.html">UnknownGoalException</A>
<DD>Construct with an unknown goal name.
<DT><A HREF="org/apache/maven/verifier/UnsatisfiedDependencyException.html"><B>UnsatisfiedDependencyException</B></A> - exception org.apache.maven.verifier.<A HREF="org/apache/maven/verifier/UnsatisfiedDependencyException.html">UnsatisfiedDependencyException</A>.<DD>Specialized unsatisfied dependency exception.<DT><A HREF="org/apache/maven/verifier/UnsatisfiedDependencyException.html#UnsatisfiedDependencyException(java.lang.String)"><B>UnsatisfiedDependencyException(String)</B></A> -
Constructor for class org.apache.maven.verifier.<A HREF="org/apache/maven/verifier/UnsatisfiedDependencyException.html">UnsatisfiedDependencyException</A>
<DD>Constructs a UnsatisfiedDependencyException with the specified detail message.
<DT><A HREF="org/apache/maven/util/HttpUtils.html#useProxyUser(java.lang.String, java.lang.String, java.lang.String, java.lang.String)"><B>useProxyUser(String, String, String, String)</B></A> -
Static method in class org.apache.maven.util.<A HREF="org/apache/maven/util/HttpUtils.html">HttpUtils</A>
<DD>Use a proxy to bypass the firewall with or without authentication
</DL>
<HR>
<A NAME="_V_"><!-- --></A><H2>
<B>V</B></H2>
<DL>
<DT><A HREF="org/apache/maven/repository/Artifact.html#verify()"><B>verify()</B></A> -
Method in interface org.apache.maven.repository.<A HREF="org/apache/maven/repository/Artifact.html">Artifact</A>
<DD>Verify the artifact.
<DT><A HREF="org/apache/maven/repository/AbstractArtifact.html#verify()"><B>verify()</B></A> -
Method in class org.apache.maven.repository.<A HREF="org/apache/maven/repository/AbstractArtifact.html">AbstractArtifact</A>
<DD>&nbsp;
<DT><A HREF="org/apache/maven/verifier/DependencyVerifier.html#verify()"><B>verify()</B></A> -
Method in class org.apache.maven.verifier.<A HREF="org/apache/maven/verifier/DependencyVerifier.html">DependencyVerifier</A>
<DD>Execute the verification process.
<DT><A HREF="org/apache/maven/project/Project.html#verifyDependencies()"><B>verifyDependencies()</B></A> -
Method in class org.apache.maven.project.<A HREF="org/apache/maven/project/Project.html">Project</A>
<DD>Verify the dependencies for this project.
<DT><A HREF="org/apache/maven/verifier/LocalSettingsVerifier.html#verifyLocalRepository()"><B>verifyLocalRepository()</B></A> -
Method in class org.apache.maven.verifier.<A HREF="org/apache/maven/verifier/LocalSettingsVerifier.html">LocalSettingsVerifier</A>
<DD>Verify user settings before attempting to verify the project.
<DT><A HREF="org/apache/maven/project/Version.html"><B>Version</B></A> - class org.apache.maven.project.<A HREF="org/apache/maven/project/Version.html">Version</A>.<DD>&nbsp;<DT><A HREF="org/apache/maven/project/Version.html#Version()"><B>Version()</B></A> -
Constructor for class org.apache.maven.project.<A HREF="org/apache/maven/project/Version.html">Version</A>
<DD>Constructor for the MailingList object
</DL>
<HR>
<A NAME="_W_"><!-- --></A><H2>
<B>W</B></H2>
<DL>
<DT><A HREF="org/apache/maven/plugin/PluginCacheManager.html#warning(org.xml.sax.SAXParseException)"><B>warning(SAXParseException)</B></A> -
Method in class org.apache.maven.plugin.<A HREF="org/apache/maven/plugin/PluginCacheManager.html">PluginCacheManager</A>
<DD>Warning callback.
<DT><A HREF="org/apache/maven/plugin/DefaultPluginCacheManager.html#warning(org.xml.sax.SAXParseException)"><B>warning(SAXParseException)</B></A> -
Method in class org.apache.maven.plugin.<A HREF="org/apache/maven/plugin/DefaultPluginCacheManager.html">DefaultPluginCacheManager</A>
<DD>Warning callback.
<DT><A HREF="org/apache/maven/MavenConstants.html#WERKZ_PROJECT"><B>WERKZ_PROJECT</B></A> -
Static variable in class org.apache.maven.<A HREF="org/apache/maven/MavenConstants.html">MavenConstants</A>
<DD>Werkz project context tag
<DT><A HREF="org/apache/maven/jelly/tags/maven/WerkzDependencyResolver.html"><B>WerkzDependencyResolver</B></A> - class org.apache.maven.jelly.tags.maven.<A HREF="org/apache/maven/jelly/tags/maven/WerkzDependencyResolver.html">WerkzDependencyResolver</A>.<DD>THIS CLASS IS NOT THREADSAFE.<DT><A HREF="org/apache/maven/jelly/tags/maven/WerkzDependencyResolver.html#WerkzDependencyResolver()"><B>WerkzDependencyResolver()</B></A> -
Constructor for class org.apache.maven.jelly.tags.maven.<A HREF="org/apache/maven/jelly/tags/maven/WerkzDependencyResolver.html">WerkzDependencyResolver</A>
<DD>&nbsp;
<DT><A HREF="org/apache/maven/cli/App.html#wrapConsoleMessage(java.lang.String, int, int)"><B>wrapConsoleMessage(String, int, int)</B></A> -
Method in class org.apache.maven.cli.<A HREF="org/apache/maven/cli/App.html">App</A>
<DD>Nicely wraps a message for console output, using a word BreakIterator
 instance to determine wrapping breaks.
</DL>
<HR>
<A NAME="_X_"><!-- --></A><H2>
<B>X</B></H2>
<DL>
<DT><A HREF="org/apache/maven/MavenConstants.html#XML_OUTPUT"><B>XML_OUTPUT</B></A> -
Static variable in class org.apache.maven.<A HREF="org/apache/maven/MavenConstants.html">MavenConstants</A>
<DD>Jelly XMLOutput tag.
</DL>
<HR>
<A HREF="#_A_">A</A> <A HREF="#_B_">B</A> <A HREF="#_C_">C</A> <A HREF="#_D_">D</A> <A HREF="#_E_">E</A> <A HREF="#_F_">F</A> <A HREF="#_G_">G</A> <A HREF="#_H_">H</A> <A HREF="#_I_">I</A> <A HREF="#_J_">J</A> <A HREF="#_L_">L</A> <A HREF="#_M_">M</A> <A HREF="#_O_">O</A> <A HREF="#_P_">P</A> <A HREF="#_R_">R</A> <A HREF="#_S_">S</A> <A HREF="#_T_">T</A> <A HREF="#_U_">U</A> <A HREF="#_V_">V</A> <A HREF="#_W_">W</A> <A HREF="#_X_">X</A>
<!-- ========== START OF NAVBAR ========== -->
<A NAME="navbar_bottom"><!-- --></A>
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0">
<TR>
<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
<A NAME="navbar_bottom_firstrow"><!-- --></A>
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3">
  <TR ALIGN="center" VALIGN="top">
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Index</B></FONT>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
  </TR>
</TABLE>
</TD>
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
</EM>
</TD>
</TR>

<TR>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
&nbsp;PREV&nbsp;
&nbsp;NEXT</FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
  <A HREF="index.html" TARGET="_top"><B>FRAMES</B></A>  &nbsp;
&nbsp;<A HREF="index-all.html" TARGET="_top"><B>NO FRAMES</B></A>  &nbsp;
&nbsp;
<SCRIPT>
  <!--
  if(window==top) {
    document.writeln('<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>');
  }
  //-->
</SCRIPT>
<NOSCRIPT>
<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>
</NOSCRIPT>
</FONT></TD>
</TR>
</TABLE>
<!-- =========== END OF NAVBAR =========== -->

<HR>
Copyright &copy; 2001-2003 Apache Software Foundation. All Rights Reserved.
</BODY>
</HTML>
