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
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 suggested naming conventions as even though we cannot store the
JARs at Ibiblio we can store metadata about those JARs and it is the
metadata that contains location and retrieval information.
the suggested naming conventions as we cannot store the JARs at Ibiblio we
can store metadata about those JARs and it is the metadata that contains
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
------
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,
which constructs classloaders for the rest of the system)
main is org.apache.maven.cli.MavenCli from plexus.core.maven
the top level classloader contains plexus container and plexus utils
(see m2/core), and also has access to classworlds
set maven.home default ${user.home}/m2
the next classloader has the libraries in m2/lib (a bug in beta 1
incorporated commons-logging and -lang, sorry about that!) In general
these are just maven libraries. We hope to further separate these in
future to just be maven apis.
[plexus.core]
load ${maven.home}/core/*.jar
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.
[plexus.core.maven]
load ${maven.home}/lib/*.jar
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).
+----+
m2/core/boot is what is in the java classpath (ie, just classworlds, which constructs classloaders for the
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
* Maven Wagon Providers
* Maven SCM Providers
* Plug-ins that define their own lifecycle
Extensions are used to enable Wagon providers, used for the transport of artifact between repositories, and plug-ins
which provide lifecycle enhancements.
When creating your own lifecycles:
This is a missing instruction on the build lifecycle page. You need to
add the plugin to the project, <extensions>true</extensions>
* Wagon providers
+----+
<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>
+----+