o updating the SUN JAR guide

git-svn-id: https://svn.apache.org/repos/asf/maven/components/trunk@315044 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Jason van Zyl 2005-10-12 20:56:32 +00:00
parent b99ea0af8a
commit 241d8e9950
3 changed files with 82 additions and 27 deletions

View File

@ -58,7 +58,16 @@ Coping with SUN JARs
When you add a Sun dependency to your POM if you use the our suggestions When you add a Sun dependency to your POM if you use the our suggestions
as noted above then Maven 2.x can help you locate the JARs by providing as noted above then Maven 2.x can help you locate the JARs by providing
the site where they can be retrieved. It is important that you follow the site where they can be retrieved. It is important that you follow
the suggested naming conventions as even though we cannot store the the suggested naming conventions as we cannot store the JARs at Ibiblio we
JARs at Ibiblio we can store metadata about those JARs and it is the can store metadata about those JARs and it is the metadata that contains
metadata that contains location and retrieval information. location and retrieval information.
Once you have downloaded a particular SUN JAR to your system you can install the JAR
in your local repository using a the install plug-in:
+----+
m2 install:install-file -Dfile=<path-to-file> -DgroupId=<group-id> \
-DartifactId=<artifact-id> -Dversion=<version> -Dpackaging=<packaging>
+----+

View File

@ -6,27 +6,34 @@
12 October 2005 12 October 2005
------ ------
How maven's classloaders work How Maven's classloaders work
To add a bit of detail for a volunteer to submit as documentation... :) +----+
m2/core/boot is what is in the java classpath (ie, just classworlds, main is org.apache.maven.cli.MavenCli from plexus.core.maven
which constructs classloaders for the rest of the system)
the top level classloader contains plexus container and plexus utils set maven.home default ${user.home}/m2
(see m2/core), and also has access to classworlds
the next classloader has the libraries in m2/lib (a bug in beta 1 [plexus.core]
incorporated commons-logging and -lang, sorry about that!) In general load ${maven.home}/core/*.jar
these are just maven libraries. We hope to further separate these in
future to just be maven apis.
after that, each plugin has its own classloader, including its [plexus.core.maven]
dependencies, itself, and the libraries above. It *does not* contain load ${maven.home}/lib/*.jar
the project dependencies like in m1, but instead has access to a list
of JAR files in case they are needed.
In addition, a project can list "extensions". These are loaded into +----+
the same place as m2/lib and so available to the maven core and all
plugins for the currnet project and subsequent projects (in future, we m2/core/boot is what is in the java classpath (ie, just classworlds, which constructs classloaders for the
plan to remove it from subsequent projects). rest of the system)
the top level classloader contains plexus container and plexus utils (see m2/core), and also has access to classworlds
the next classloader has the libraries in m2/lib In general these are just maven libraries. We hope to further
separate these in future to just be maven apis.
after that, each plugin has its own classloader, including its dependencies, itself, and the libraries above.
It *does not* contain the project dependencies like in m1, but instead has access to a list of JAR files in case
they are needed.
In addition, a project can list "extensions". These are loaded into the same place as m2/lib and so available to
the maven core and all plugins for the currnet project and subsequent projects (in future, we plan to remove it
from subsequent projects).

View File

@ -8,10 +8,49 @@
Using Extensions Using Extensions
* Maven Wagon Providers Extensions are used to enable Wagon providers, used for the transport of artifact between repositories, and plug-ins
* Maven SCM Providers which provide lifecycle enhancements.
* Plug-ins that define their own lifecycle
When creating your own lifecycles: * Wagon providers
This is a missing instruction on the build lifecycle page. You need to
add the plugin to the project, <extensions>true</extensions> +----+
<project>
...
<build>
<extensions>
<extension>
<groupId>org.apache.maven.wagon</groupId>
<artifactId>wagon-ftp</artifactId>
<version>1.0-alpha-3</version>
</extension>
</extensions>
</build>
...
</project>
+----+
* Plug-ins which provide lifecycle enhancements
+----+
<project>
...
<build>
<plugins>
<plugin>
<groupId>org.codehaus.plexus</groupId>
<artifactId>plexus-maven-plugin</artifactId>
<version>1.1-alpha-8-SNAPSHOT</version>
<extensions>true</extensions>
<configuration>
...
</configuration>
</plugin>
</plugins>
</build>
...
</project>
+----+