Using Maven with Eclipse
|
As I'm at the beginning of my now-intimate association with Maven, this article would not be complete without a small rant. When the subdirectory relationships for Java development were set up, a not inconsiderable mess was created. Over the years, Eclipse worked to abbreviate the mess in order to alleviate the developer's burden. And, it didn't have to do this since being an IDE, it already helped navigate what at the command line was a nightmare.
Maven undoes all of this by reintroducing pointless, repetitive hierarchy. I'm looking forward to Eclipse developers integrating Maven more tightly to alleviate this.
After some random notes on which Maven plug-ins to use with Eclipse, where to get it, etc. you'll find here, you'll find the following step-by-step useful. Pay special attention to the first few steps of "Walk the walk..."
There are a number of tutorials around that can help you set up and use Maven. They work especially well for simple projects, but not for web application projects where they all seem to fail miserably. This might be due to their age, to mistakes, etc., or it might even say more about my lameness than about the tutorials, but I find these instructions the most useful.
These instructions will not, however, get you up and running in a web application using Facelets or even JSF. For that, you need to know the JAR dependencies. Get those wrong, and your project is little more than mush.
As noted, this assumes you've set up the following—in order. If you're missing anything, go to the link.
Much of the following are something you'll issue from the command line in Linux and even DOS (Windows). Arguably, Maven swims better from the command line than from inside of Eclipse. That's going to change, I suspect, and my perception is also partly due to inexperience. However, many Maven users tell me they do stuff from the command line rather than from Eclipse.
Each time you invoke Maven from the command line (or, if from Eclipse, in the Console view), you'll see a huge number of barely understandable status lines go by. Over time, you'll come to understand what they mean, but at first, they're rather bewildering.
The thing to look for are lines that say failure that do not next go on to try something else as a solution. When you see "BUILD FAILED", you are in trouble. What happens if that occurs during these exercises? It's not likely if you've set up your toolstack (Java and Maven) correctly. And Maven excels at setting up a stub project from scratch. However, if it's unable to reach its repository(ies) over the Internet, you'll see that. If you don't have certain things set up (such as are mentioned on that notes page for Maven above), this will be the result.
I would suggest that if something goes awry, you do not try to import the Eclipse project. Wait until you get no failures (which will probably be right off) and what's inside looks good. That assumes you already know what you're doing in Eclipse Web Tools Platform. But, be prepared for some substantial differences.
mvn archetype:generate -DarchetypeArtifactId=maven-archetype-webapp \ -DgroupId=package-name -DartifactId=project-name
Actually, if you set up m2eclipse, you can get prefabricated archetypes that do various such things and write the pom.xml for you. I haven't always been happy or successful with that, and you have to know just what you want based on a name. It's part of the Maven integration with Eclipse, which is not really the object here.
<dependency> <groupId>org.apache.myfaces.core</groupId> <artifactId>myfaces-api</artifactId> <version>1.2.2</version> </dependency> <dependency> <groupId>org.apache.myfaces.tomahawk</groupId> <artifactId>tomahawk</artifactId> <version>1.1.9</version> </dependency> <dependency> <groupId>org.apache.myfaces.core</groupId> <artifactId>myfaces-impl</artifactId> <version>1.2.2</version> </dependency> <dependency> <groupId>javax.servlet</groupId> <artifactId>jstl</artifactId> <version>1.1.2</version> </dependency> <dependency> <groupId>taglibs</groupId> <artifactId>standard</artifactId> <version>1.1.2</version> </dependency> <dependency> <groupId>org.apache.geronimo.specs</groupId> <artifactId>geronimo-servlet_2.5_spec</artifactId> <version>1.2</version> <scope>provided</scope> </dependency> ... <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>2.0.2</version> <configuration> <source>1.6</source> <target>1.6</target> </configuration> </plugin> <plugin> <!-- if this is how you wish to deploy it... --> <groupId>org.codehaus.mojo</groupId> <artifactId>tomcat-maven-plugin</artifactId> <configuration> <url>http://192.168.1.7:8080/manager</url> <server>mytomcat</server> <path>/mywebapp</path> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-eclipse-plugin</artifactId> <configuration> <wtpapplicationxml>true</wtpapplicationxml> <wtpversion>1.5</wtpversion> <downloadSources>true</downloadSources> <downloadJavadocs>true</downloadJavadocs> <classpathContainers> <classpathContainer>org.eclipse.jst.j2ee.internal.web.container</classpathContainer> <classpathContainer>org.eclipse.jst.j2ee.internal.module.container</classpathContainer> </classpathContainers> <additionalProjectFacets> <jst.web>2.5</jst.web> <jst.jsf>1.2</jst.jsf> </additionalProjectFacets> </configuration> </plugin> </plugins>
cd project-name mkdir src/main/java
mvn eclipse:clean eclipse:eclipse
File ->
Import ->
General ->
Existing Projects into Workspace
.
You might not want to copy the project sources into the workspace.
There's an option to do that. I resist this because a) I might be
updating and committing this project via Subversion and b) I might want
to continue to do work on it from the command line via Maven.
src/main/webapp/WEB-INF/web.xml src/main/webapp/WEB-INF/faces-config.xml
and adding JSPs, xHTMLs, etc.:
src/main/webapp/index.jsp src/main/webapp/inputname.jsp
mvn tomcat:deploy
Any time you think something's gone south between Maven and Eclipse, you can do this:
mvn eclipse:clean eclipse:eclipse
...followed by a refresh of your Eclipse project (select the project, then press F5).
When you create a new project, there are different aspects that you tell Maven about. These include:
<groupId> | the Java package |
<artifactId> | the project name |
<package> | default package name in project |
<baseDir> | filesystem root of project |
mvn test |
runs project testcases |
mvn clean |
removes the target subdirectory (will be rebuilt from scratch) |
mvn package |
builds the "artifact" or, in Java, the JAR/WAR/etc. |
mvn eclipse:eclipse |
creates a .project file to make an Eclipse project of the project |
mvn eclipse:clean |
In the above, "eclipse" on the left side of the colon means "use the Maven 2 Eclipse plug-in". The one on the right side means "execute the explicit target in that plug-in".
Add M2_REPO in Eclipse
(Preferences -> Java -> Build Path -> Classpath Variables
)
as /home/russ/.m2/repository.
Consider http://mirrors.ibiblio.org/, a collection of collections hosting a range of publicly available open source software, in particular, JAR repositories at http://mirrors.ibiblio.org/pub/mirrors/maven2. This is the place to go to find dependencies.
The easiest way is to Google "ibiblio JAR-name" plus any more information that might narrow the search down. This should get you in the vicinity. Look for an ibiblio entry. You may need to adjust the path to see what versions are available. Choose one. There, you'll find subdirectories with version numbers; you choose one (the latest?). You may find there a pom file containing the relevant groupId, artifactId and the version for building the dependency.
For example, let's say I'm looking for myfaces-api-xxx.jar and its matching companion, myfaces-impl-xxx.jar, but don't know where to get it. I do know that it's the Apache one I want.
I look down the list. When I reach the sixth one, I see something close to what I want, myfaces-api-1.2.5. So I go there, but then I truncate the URL to http://mirrors.ibiblio.org/pub/mirrors/maven2/org/apache/myfaces/core/myfaces-api so that I can examine what versions are in fact available.
Now I can decide which version to choose. Obviously, Maven will not help you do that. The pom file available with the JARs has no extension (which fact is helpful for if you download it, it won't risk being confused as a real one in your build). This file is the pom.xml used to construct the JARs you're looking at. In addition, for this JAR set at least, I see I've got not only the library JAR itself, myfaces-api-1.2.8.jar, but also source and Javadoc JARs that will be useful to me as I edit my code in Eclipse (content assist and documentation).
This allows for versions to appear in a single place (near the top of pom.xml?).
<properties> <spring-version>2.5.5</spring-version> <junit-version>4.5</junit-version> <commons-dbcp-version>1.2.2</commons-dbcp-version> <commons-logging-version>1.1.1</commons-logging-version> </properties>
Later, you just specify a dependency thus:
<dependency> <groupId>commons-logging<groupId> <artifactId>commons-logging</artifactId> <version>${commons-logging-version}</version> </dependency>
It appears inevitable that Eclipse will issue warnings, at least for web-applications projects.
Now that we've begun seriously to grok Maven, let's take a simple walk down the process of creating a new Eclipse project. This is a project that I started out using
mvn archetype:generate -DarchetypeArtifactId=maven-archetype-webapp -DgroupId=com.one -DartifactId=one
I began my fresh build in order to illustrate this walk by deleting everything underneath ~/.m2/repository so it would have to start over from scratch. For brevity, I've removed the redundant "Downloading: ..." statements since they are identical to the subsequent, successful "Downloaded: ..." ones. There were no warnings or errors.
This is Maven downloading all of the plug-ins it wants. Mostly, Maven decides which ones to download.
russ@russ-elite-book:~/dev/maven-tutorial/one> mvn eclipse:clean eclipse:eclipse [INFO] Scanning for projects... Downloaded: http://repo1.maven.org/maven2/org/apache/maven/plugins/maven-clean-plugin/2.4.1/maven-clean-plugin-2.4.1.pom (5 KB at 4.0 KB/sec) Downloaded: http://repo1.maven.org/maven2/org/apache/maven/plugins/maven-plugins/18/maven-plugins-18.pom (13 KB at 20.9 KB/sec) Downloaded: http://repo1.maven.org/maven2/org/apache/maven/maven-parent/16/maven-parent-16.pom (23 KB at 37.5 KB/sec) Downloaded: http://repo1.maven.org/maven2/org/apache/apache/7/apache-7.pom (15 KB at 22.8 KB/sec) Downloaded: http://repo1.maven.org/maven2/org/apache/maven/plugins/maven-clean-plugin/2.4.1/maven-clean-plugin-2.4.1.jar (23 KB at 58.5 KB/sec) Downloaded: http://repo1.maven.org/maven2/org/apache/maven/plugins/maven-install-plugin/2.3.1/maven-install-plugin-2.3.1.pom (5 KB at 5.6 KB/sec) Downloaded: http://repo1.maven.org/maven2/org/apache/maven/plugins/maven-install-plugin/2.3.1/maven-install-plugin-2.3.1.jar (23 KB at 22.8 KB/sec) Downloaded: http://repo1.maven.org/maven2/org/apache/maven/plugins/maven-resources-plugin/2.4.3/maven-resources-plugin-2.4.3.pom (6 KB at 7.9 KB/sec) Downloaded: http://repo1.maven.org/maven2/org/apache/maven/plugins/maven-resources-plugin/2.4.3/maven-resources-plugin-2.4.3.jar (24 KB at 25.6 KB/sec) Downloaded: http://repo1.maven.org/maven2/org/apache/maven/plugins/maven-surefire-plugin/2.7.1/maven-surefire-plugin-2.7.1.pom (10 KB at 11.4 KB/sec) Downloaded: http://repo1.maven.org/maven2/org/apache/maven/surefire/surefire/2.7.1/surefire-2.7.1.pom (10 KB at 10.1 KB/sec) Downloaded: http://repo1.maven.org/maven2/org/apache/maven/maven-parent/18/maven-parent-18.pom (24 KB at 22.7 KB/sec) Downloaded: http://repo1.maven.org/maven2/org/apache/apache/8/apache-8.pom (14 KB at 16.1 KB/sec) Downloaded: http://repo1.maven.org/maven2/org/apache/maven/plugins/maven-surefire-plugin/2.7.1/maven-surefire-plugin-2.7.1.jar (29 KB at 28.6 KB/sec) Downloaded: http://repo1.maven.org/maven2/org/apache/maven/plugins/maven-compiler-plugin/2.0.2/maven-compiler-plugin-2.0.2.pom (3 KB at 3.4 KB/sec) Downloaded: http://repo1.maven.org/maven2/org/apache/maven/plugins/maven-plugins/8/maven-plugins-8.pom (6 KB at 7.0 KB/sec) Downloaded: http://repo1.maven.org/maven2/org/apache/maven/maven-parent/5/maven-parent-5.pom (15 KB at 16.9 KB/sec) Downloaded: http://repo1.maven.org/maven2/org/apache/apache/3/apache-3.pom (4 KB at 3.9 KB/sec) Downloaded: http://repo1.maven.org/maven2/org/apache/maven/plugins/maven-compiler-plugin/2.0.2/maven-compiler-plugin-2.0.2.jar (18 KB at 15.5 KB/sec) Downloaded: http://repo1.maven.org/maven2/org/apache/maven/plugins/maven-war-plugin/2.1.1/maven-war-plugin-2.1.1.pom (7 KB at 7.7 KB/sec) Downloaded: http://repo1.maven.org/maven2/org/apache/maven/plugins/maven-war-plugin/2.1.1/maven-war-plugin-2.1.1.jar (76 KB at 65.7 KB/sec) Downloaded: http://repo1.maven.org/maven2/org/apache/maven/plugins/maven-deploy-plugin/2.5/maven-deploy-plugin-2.5.pom (6 KB at 6.8 KB/sec) Downloaded: http://repo1.maven.org/maven2/org/apache/maven/plugins/maven-plugins/16/maven-plugins-16.pom (13 KB at 14.3 KB/sec) Downloaded: http://repo1.maven.org/maven2/org/apache/maven/maven-parent/15/maven-parent-15.pom (24 KB at 25.5 KB/sec) Downloaded: http://repo1.maven.org/maven2/org/apache/apache/6/apache-6.pom (13 KB at 14.4 KB/sec) Downloaded: http://repo1.maven.org/maven2/org/apache/maven/plugins/maven-deploy-plugin/2.5/maven-deploy-plugin-2.5.jar (23 KB at 21.8 KB/sec) Downloaded: http://repo1.maven.org/maven2/org/apache/maven/plugins/maven-site-plugin/2.0.1/maven-site-plugin-2.0.1.pom (14 KB at 15.3 KB/sec) Downloaded: http://repo1.maven.org/maven2/org/apache/maven/plugins/maven-plugins/13/maven-plugins-13.pom (12 KB at 13.0 KB/sec) Downloaded: http://repo1.maven.org/maven2/org/apache/maven/maven-parent/11/maven-parent-11.pom (32 KB at 33.4 KB/sec) Downloaded: http://repo1.maven.org/maven2/org/apache/apache/5/apache-5.pom (5 KB at 4.7 KB/sec) Downloaded: http://repo1.maven.org/maven2/org/apache/maven/plugins/maven-site-plugin/2.0.1/maven-site-plugin-2.0.1.jar (79 KB at 69.4 KB/sec) Downloaded: http://repo1.maven.org/maven2/org/apache/maven/plugins/maven-antrun-plugin/1.3/maven-antrun-plugin-1.3.pom (5 KB at 5.8 KB/sec) Downloaded: http://repo1.maven.org/maven2/org/apache/maven/plugins/maven-plugins/12/maven-plugins-12.pom (12 KB at 6.5 KB/sec) Downloaded: http://repo1.maven.org/maven2/org/apache/maven/maven-parent/9/maven-parent-9.pom (33 KB at 54.8 KB/sec) Downloaded: http://repo1.maven.org/maven2/org/apache/apache/4/apache-4.pom (5 KB at 5.5 KB/sec) Downloaded: http://repo1.maven.org/maven2/org/apache/maven/plugins/maven-antrun-plugin/1.3/maven-antrun-plugin-1.3.jar (24 KB at 51.8 KB/sec) Downloaded: http://repo1.maven.org/maven2/org/apache/maven/plugins/maven-assembly-plugin/2.2-beta-5/maven-assembly-plugin-2.2-beta-5.pom (15 KB at 16.9 KB/sec) Downloaded: http://repo1.maven.org/maven2/org/apache/maven/plugins/maven-assembly-plugin/2.2-beta-5/maven-assembly-plugin-2.2-beta-5.jar (204 KB at 159.5 KB/sec) Downloaded: http://repo1.maven.org/maven2/org/apache/maven/plugins/maven-dependency-plugin/2.1/maven-dependency-plugin-2.1.pom (8 KB at 10.0 KB/sec) Downloaded: http://repo1.maven.org/maven2/org/apache/maven/plugins/maven-dependency-plugin/2.1/maven-dependency-plugin-2.1.jar (104 KB at 87.4 KB/sec) Downloaded: http://repo1.maven.org/maven2/org/apache/maven/plugins/maven-release-plugin/2.0/maven-release-plugin-2.0.pom (8 KB at 10.1 KB/sec) Downloaded: http://repo1.maven.org/maven2/org/apache/maven/release/maven-release/2.0/maven-release-2.0.pom (7 KB at 7.5 KB/sec) Downloaded: http://repo1.maven.org/maven2/org/apache/maven/plugins/maven-release-plugin/2.0/maven-release-plugin-2.0.jar (38 KB at 36.4 KB/sec) Downloaded: http://repo1.maven.org/maven2/org/apache/maven/plugins/maven-eclipse-plugin/2.4/maven-eclipse-plugin-2.4.pom (6 KB at 6.4 KB/sec) Downloaded: http://repo1.maven.org/maven2/org/apache/maven/plugins/maven-eclipse-plugin/2.4/maven-eclipse-plugin-2.4.jar (126 KB at 108.3 KB/sec)
These appear to be some important POMs Maven wants access to. Just as the section above, it's Maven and not my project that's causing this.
[INFO] [INFO] ------------------------------------------------------------------------ [INFO] Building one Maven Webapp 1.0-SNAPSHOT [INFO] ------------------------------------------------------------------------ [INFO] [INFO] --- maven-eclipse-plugin:2.4:clean (default-cli) @ one --- Downloaded: http://repo1.maven.org/maven2/org/codehaus/plexus/plexus-archiver/1.0-alpha-7/plexus-archiver-1.0-alpha-7.pom (2 KB at 1.8 KB/sec) Downloaded: http://repo1.maven.org/maven2/org/codehaus/plexus/plexus-components/1.1.6/plexus-components-1.1.6.pom (2 KB at 2.3 KB/sec) Downloaded: http://repo1.maven.org/maven2/org/codehaus/plexus/plexus/1.0.8/plexus-1.0.8.pom (8 KB at 8.1 KB/sec) Downloaded: http://repo1.maven.org/maven2/org/codehaus/plexus/plexus-utils/1.2/plexus-utils-1.2.pom (767 B at 1.0 KB/sec) Downloaded: http://repo1.maven.org/maven2/org/codehaus/plexus/plexus/1.0.5/plexus-1.0.5.pom (6 KB at 6.5 KB/sec) Downloaded: http://repo1.maven.org/maven2/org/codehaus/plexus/plexus-container-default/1.0-alpha-8/plexus-container-default-1.0-alpha-8.pom (8 KB at 7.8 KB/sec) Downloaded: http://repo1.maven.org/maven2/org/codehaus/plexus/plexus-utils/1.0.4/plexus-utils-1.0.4.pom (7 KB at 7.6 KB/sec) Downloaded: http://repo1.maven.org/maven2/junit/junit/3.8.1/junit-3.8.1.pom (998 B at 1.2 KB/sec) Downloaded: http://repo1.maven.org/maven2/classworlds/classworlds/1.1-alpha-2/classworlds-1.1-alpha-2.pom (4 KB at 3.9 KB/sec) Downloaded: http://repo1.maven.org/maven2/org/apache/maven/maven-project/2.0.6/maven-project-2.0.6.pom (3 KB at 3.4 KB/sec) Downloaded: http://repo1.maven.org/maven2/org/apache/maven/maven/2.0.6/maven-2.0.6.pom (9 KB at 10.0 KB/sec) Downloaded: http://repo1.maven.org/maven2/org/apache/maven/maven-settings/2.0.6/maven-settings-2.0.6.pom (2 KB at 2.8 KB/sec) Downloaded: http://repo1.maven.org/maven2/org/apache/maven/maven-model/2.0.6/maven-model-2.0.6.pom (3 KB at 3.9 KB/sec) Downloaded: http://repo1.maven.org/maven2/org/codehaus/plexus/plexus-utils/1.4.1/plexus-utils-1.4.1.pom (2 KB at 2.3 KB/sec) Downloaded: http://repo1.maven.org/maven2/org/codehaus/plexus/plexus/1.0.11/plexus-1.0.11.pom (9 KB at 9.8 KB/sec) Downloaded: http://repo1.maven.org/maven2/org/codehaus/plexus/plexus-container-default/1.0-alpha-9-stable-1/plexus-container-default-1.0-alpha-9-stable-1.pom (4 KB at 4.9 KB/sec) Downloaded: http://repo1.maven.org/maven2/org/codehaus/plexus/plexus-containers/1.0.3/plexus-containers-1.0.3.pom (492 B at 0.6 KB/sec) Downloaded: http://repo1.maven.org/maven2/org/codehaus/plexus/plexus/1.0.4/plexus-1.0.4.pom (6 KB at 6.2 KB/sec) Downloaded: http://repo1.maven.org/maven2/org/apache/maven/maven-profile/2.0.6/maven-profile-2.0.6.pom (2 KB at 2.5 KB/sec) Downloaded: http://repo1.maven.org/maven2/org/apache/maven/maven-artifact-manager/2.0.6/maven-artifact-manager-2.0.6.pom (3 KB at 3.3 KB/sec) Downloaded: http://repo1.maven.org/maven2/org/apache/maven/maven-repository-metadata/2.0.6/maven-repository-metadata-2.0.6.pom (2 KB at 2.3 KB/sec) Downloaded: http://repo1.maven.org/maven2/org/apache/maven/maven-artifact/2.0.6/maven-artifact-2.0.6.pom (2 KB at 2.0 KB/sec) Downloaded: http://repo1.maven.org/maven2/org/apache/maven/maven-plugin-registry/2.0.6/maven-plugin-registry-2.0.6.pom (2 KB at 2.4 KB/sec) Downloaded: http://repo1.maven.org/maven2/org/apache/maven/maven-plugin-api/2.0.6/maven-plugin-api-2.0.6.pom (2 KB at 2.0 KB/sec) Downloaded: http://repo1.maven.org/maven2/org/codehaus/plexus/plexus-utils/1.4.2/plexus-utils-1.4.2.pom (2 KB at 2.7 KB/sec) Downloaded: http://repo1.maven.org/maven2/org/codehaus/plexus/plexus-interactivity-jline/1.0-alpha-5/plexus-interactivity-jline-1.0-alpha-5.pom (772 B at 1.0 KB/sec) Downloaded: http://repo1.maven.org/maven2/org/codehaus/plexus/plexus-interactivity/1.0-alpha-5/plexus-interactivity-1.0-alpha-5.pom (482 B at 0.7 KB/sec) Downloaded: http://repo1.maven.org/maven2/org/codehaus/plexus/plexus-components/1.1.4/plexus-components-1.1.4.pom (3 KB at 2.5 KB/sec) Downloaded: http://repo1.maven.org/maven2/jline/jline/0.9.1/jline-0.9.1.pom (145 B at 0.2 KB/sec) Downloaded: http://repo1.maven.org/maven2/org/codehaus/plexus/plexus-interactivity-api/1.0-alpha-5/plexus-interactivity-api-1.0-alpha-5.pom (430 B at 0.5 KB/sec) Downloaded: http://repo1.maven.org/maven2/org/apache/maven/maven-archiver/2.2/maven-archiver-2.2.pom (2 KB at 1.7 KB/sec) Downloaded: http://repo1.maven.org/maven2/org/apache/maven/shared/maven-shared-components/3/maven-shared-components-3.pom (2 KB at 2.4 KB/sec) Downloaded: http://repo1.maven.org/maven2/org/apache/maven/maven-parent/4/maven-parent-4.pom (10 KB at 10.8 KB/sec) Downloaded: http://repo1.maven.org/maven2/org/apache/maven/maven-project/2.0/maven-project-2.0.pom (2 KB at 2.1 KB/sec) Downloaded: http://repo1.maven.org/maven2/org/apache/maven/maven/2.0/maven-2.0.pom (9 KB at 9.8 KB/sec) Downloaded: http://repo1.maven.org/maven2/org/apache/maven/maven-profile/2.0/maven-profile-2.0.pom (2 KB at 1.7 KB/sec) Downloaded: http://repo1.maven.org/maven2/org/apache/maven/maven-model/2.0/maven-model-2.0.pom (3 KB at 3.0 KB/sec) Downloaded: http://repo1.maven.org/maven2/org/apache/maven/maven-artifact-manager/2.0/maven-artifact-manager-2.0.pom (2 KB at 1.7 KB/sec) Downloaded: http://repo1.maven.org/maven2/org/apache/maven/maven-repository-metadata/2.0/maven-repository-metadata-2.0.pom (2 KB at 1.5 KB/sec) Downloaded: http://repo1.maven.org/maven2/org/apache/maven/maven-artifact/2.0/maven-artifact-2.0.pom (723 B at 0.9 KB/sec) Downloaded: http://repo1.maven.org/maven2/biz/aQute/bndlib/0.0.145/bndlib-0.0.145.pom (886 B at 1.2 KB/sec) Downloaded: http://repo1.maven.org/maven2/org/codehaus/plexus/plexus-archiver/1.0-alpha-7/plexus-archiver-1.0-alpha-7.jar (139 KB at 66.7 KB/sec) Downloaded: http://repo1.maven.org/maven2/org/codehaus/plexus/plexus-interactivity-api/1.0-alpha-5/plexus-interactivity-api-1.0-alpha-5.jar (14 KB at 12.4 KB/sec) Downloaded: http://repo1.maven.org/maven2/junit/junit/3.8.1/junit-3.8.1.jar (119 KB at 36.9 KB/sec) Downloaded: http://repo1.maven.org/maven2/org/apache/maven/maven-archiver/2.2/maven-archiver-2.2.jar (10 KB at 9.2 KB/sec) Downloaded: http://repo1.maven.org/maven2/org/codehaus/plexus/plexus-utils/1.4.2/plexus-utils-1.4.2.jar (186 KB at 41.8 KB/sec) Downloaded: http://repo1.maven.org/maven2/jline/jline/0.9.1/jline-0.9.1.jar (46 KB at 9.8 KB/sec) Downloaded: http://repo1.maven.org/maven2/org/codehaus/plexus/plexus-interactivity-jline/1.0-alpha-5/plexus-interactivity-jline-1.0-alpha-5.jar (6 KB at 1.0 KB/sec) Downloaded: http://repo1.maven.org/maven2/biz/aQute/bndlib/0.0.145/bndlib-0.0.145.jar (112 KB at 38.2 KB/sec)
Because my project was already an Eclipse project, the eclipse:clean part forces Maven to wipe the old Eclipsifying bits and re-do them.
[INFO] Deleting file: .project [INFO] Deleting file: .classpath [INFO] Deleting file: .wtpmodules [INFO] Deleting file: .component [INFO] Deleting file: org.eclipse.wst.common.component [INFO] Deleting file: org.eclipse.wst.common.project.facet.core.xml [INFO] Deleting file: org.eclipse.jdt.core.prefs [INFO] Deleting directory: .settings [INFO] [INFO] >>> maven-eclipse-plugin:2.4:eclipse (default-cli) @ one >>> [INFO] [INFO] <<< maven-eclipse-plugin:2.4:eclipse (default-cli) @ one <<< [INFO] [INFO] --- maven-eclipse-plugin:2.4:eclipse (default-cli) @ one --- [INFO] Adding support for WTP version 1.5.
Okay, now let's have some fun: this is the stuff we've indicated as important
to our project via our own pom.xml and Maven is going out to the
repositories it knows about to get it. We have specified NO repositories via
any
First, Maven goes to get all the POMs that describe our consumables. This enables Maven to assess dependencies that we would not necessarily know about—that commons-beanutils depends on a POM in commons-parent. Though it doesn't, that POM might have told of some physical dependencies (JARs). That way, we don't have to have an exhaustive list; we just know about the main dependencies that interest us.
Downloaded: http://repo1.maven.org/maven2/commons-beanutils/commons-beanutils/1.8.3/commons-beanutils-1.8.3.pom (11 KB at 14.1 KB/sec) Downloaded: http://repo1.maven.org/maven2/org/apache/commons/commons-parent/14/commons-parent-14.pom (31 KB at 74.4 KB/sec) Downloaded: http://repo1.maven.org/maven2/commons-logging/commons-logging/1.1.1/commons-logging-1.1.1.pom (18 KB at 40.6 KB/sec) Downloaded: http://repo1.maven.org/maven2/org/apache/commons/commons-parent/5/commons-parent-5.pom (16 KB at 17.6 KB/sec) Downloaded: http://repo1.maven.org/maven2/commons-codec/commons-codec/1.4/commons-codec-1.4.pom (11 KB at 12.7 KB/sec) Downloaded: http://repo1.maven.org/maven2/org/apache/commons/commons-parent/11/commons-parent-11.pom (25 KB at 25.6 KB/sec) Downloaded: http://repo1.maven.org/maven2/commons-collections/commons-collections/3.2.1/commons-collections-3.2.1.pom (13 KB at 7.8 KB/sec) Downloaded: http://repo1.maven.org/maven2/org/apache/commons/commons-parent/9/commons-parent-9.pom (22 KB at 35.5 KB/sec) Downloaded: http://repo1.maven.org/maven2/commons-digester/commons-digester/2.1/commons-digester-2.1.pom (11 KB at 17.8 KB/sec) Downloaded: http://repo1.maven.org/maven2/org/apache/commons/commons-parent/17/commons-parent-17.pom (31 KB at 50.3 KB/sec) Downloaded: http://repo1.maven.org/maven2/commons-discovery/commons-discovery/0.4/commons-discovery-0.4.pom (6 KB at 6.2 KB/sec) Downloaded: http://repo1.maven.org/maven2/commons-logging/commons-logging/1.0.4/commons-logging-1.0.4.pom (6 KB at 6.3 KB/sec) Downloaded: http://repo1.maven.org/maven2/javax/servlet/jstl/1.2/jstl-1.2.pom (356 B at 0.4 KB/sec) Downloaded: http://repo1.maven.org/maven2/org/apache/myfaces/core/myfaces-api/1.2.8/myfaces-api-1.2.8.pom (14 KB at 21.5 KB/sec) Downloaded: http://repo1.maven.org/maven2/org/apache/myfaces/core/myfaces-core-project/1.2.8/myfaces-core-project-1.2.8.pom (6 KB at 7.1 KB/sec) Downloaded: http://repo1.maven.org/maven2/org/apache/myfaces/myfaces/6/myfaces-6.pom (30 KB at 47.5 KB/sec) Downloaded: http://repo1.maven.org/maven2/org/apache/myfaces/core/myfaces-impl/1.2.8/myfaces-impl-1.2.8.pom (29 KB at 45.0 KB/sec) Downloaded: http://repo1.maven.org/maven2/commons-collections/commons-collections/3.2/commons-collections-3.2.pom (11 KB at 13.6 KB/sec) Downloaded: http://repo1.maven.org/maven2/commons-codec/commons-codec/1.3/commons-codec-1.3.pom (6 KB at 8.0 KB/sec) Downloaded: http://repo1.maven.org/maven2/commons-beanutils/commons-beanutils/1.7.0/commons-beanutils-1.7.0.pom (357 B at 0.4 KB/sec) Downloaded: http://repo1.maven.org/maven2/commons-digester/commons-digester/1.8/commons-digester-1.8.pom (7 KB at 8.4 KB/sec)
At long last, Maven goes to get all the JARs on which our project is dependent...
Downloaded: http://repo1.maven.org/maven2/commons-beanutils/commons-beanutils/1.8.3/commons-beanutils-1.8.3.jar (227 KB at 325.1 KB/sec) Downloaded: http://repo1.maven.org/maven2/commons-logging/commons-logging/1.1.1/commons-logging-1.1.1.jar (60 KB at 51.4 KB/sec) Downloaded: http://repo1.maven.org/maven2/commons-codec/commons-codec/1.4/commons-codec-1.4.jar (57 KB at 49.8 KB/sec) Downloaded: http://repo1.maven.org/maven2/commons-collections/commons-collections/3.2.1/commons-collections-3.2.1.jar (562 KB at 247.1 KB/sec) Downloaded: http://repo1.maven.org/maven2/commons-digester/commons-digester/2.1/commons-digester-2.1.jar (193 KB at 302.1 KB/sec) Downloaded: http://repo1.maven.org/maven2/commons-discovery/commons-discovery/0.4/commons-discovery-0.4.jar (75 KB at 65.7 KB/sec) Downloaded: http://repo1.maven.org/maven2/javax/servlet/jstl/1.2/jstl-1.2.jar (405 KB at 274.3 KB/sec) Downloaded: http://repo1.maven.org/maven2/org/apache/myfaces/core/myfaces-api/1.2.8/myfaces-api-1.2.8.jar (371 KB at 253.5 KB/sec) Downloaded: http://repo1.maven.org/maven2/org/apache/myfaces/core/myfaces-impl/1.2.8/myfaces-impl-1.2.8.jar (782 KB at 427.1 KB/sec) [INFO] Using source status cache: /home/russ/dev/maven-tutorial/one/target/mvn-eclipse-cache.properties [INFO] Wrote settings to /home/russ/dev/maven-tutorial/one/.settings/org.eclipse.jdt.core.prefs [INFO] Wrote Eclipse project for "one" to /home/russ/dev/maven-tutorial/one. [INFO] [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ [INFO] Total time: 1:48.383s [INFO] Finished at: Fri Feb 04 16:53:04 MST 2011 [INFO] Final Memory: 7M/118M [INFO] ------------------------------------------------------------------------
Link to Maven installation instructions and getting started.
Other useful Maven links.
As I say, I'm not very happy with many of these, but even broken, these tutorials and others here, brought me as far as I am.