mirror of https://github.com/apache/maven.git
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:
parent
b99ea0af8a
commit
241d8e9950
|
@ -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>
|
||||
|
||||
+----+
|
||||
|
|
|
@ -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).
|
||||
|
|
|
@ -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>
|
||||
|
||||
+----+
|
||||
|
|
Loading…
Reference in New Issue