mirror of
https://github.com/apache/maven.git
synced 2025-02-09 11:35:24 +00:00
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
|
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>
|
||||||
|
|
||||||
|
+----+
|
||||||
|
@ -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).
|
||||||
|
@ -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>
|
||||||
|
|
||||||
|
+----+
|
||||||
|
Loading…
x
Reference in New Issue
Block a user