mirror of https://github.com/apache/maven.git
o checking eclipse ide guide sent to me by Bernd Mau <Mau@hhla.de>
Kenney, Vincent, do you think you could take a look at this. I'm not an Eclipse user. git-svn-id: https://svn.apache.org/repos/asf/maven/components/trunk@329875 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
4c52484813
commit
8109fe275d
|
@ -1,17 +1,233 @@
|
|||
------
|
||||
Guide to using Eclipse with Maven 2.x
|
||||
------
|
||||
Jason van Zyl
|
||||
Bernd Mau, mau@hhla.de
|
||||
------
|
||||
12 October 2005
|
||||
28 October 2005
|
||||
------
|
||||
|
||||
Guide to using Eclipse with Maven 2.x
|
||||
|
||||
To generate the Eclipse project files from your POM you execute the following command:
|
||||
This mini guide explains howto use Maven 2 in Eclipse IDE.
|
||||
|
||||
* {{{#Maven 2 repository}Maven 2 repository}}
|
||||
|
||||
* {{{#Maven as an external tool}Maven as an external tool}}
|
||||
|
||||
* {{{#Simple Project}Simple Project}}
|
||||
|
||||
* {{{#Multiple Module Project}Multiple Module Project}}
|
||||
|
||||
* {Maven 2 repository}
|
||||
|
||||
Eclipse needs to know the path to the local maven
|
||||
repository. Therefore the classpath variable <M2_REPO> has to be
|
||||
set. Execute the following command:
|
||||
|
||||
+----+
|
||||
|
||||
mvn -Declipse.workspace=<path-to-eclipse-workspace> eclipse:add-maven-repo
|
||||
|
||||
+----+
|
||||
|
||||
You can also define a new classpath variable inside eclipse: From the
|
||||
menu bar, select Window > Preferences. Select the Java > Build Path >
|
||||
Classpath Variables page.
|
||||
|
||||
<<Issue:>> The command does not work. Aside from it should not require a POM.
|
||||
|
||||
* {Maven as an external tool}
|
||||
|
||||
You might want to execute some maven goals from inside eclipse. This
|
||||
is possible by configuring an external launcher. It is best practice
|
||||
to prepare eclipse by adding a variable, which points to your local
|
||||
maven excutable (mvn.bat/mvn). From the menu bar, select Window >
|
||||
Preferences. Select the Run/Debug > String Substitution. Add a new
|
||||
variable e.g. <maven_exec>. When you set up a new external launcher
|
||||
(from the menu bar, select Run > External Tools. Select Program) you
|
||||
can refer to <maven_exec> in the location field. Furhtermore refer to
|
||||
<project_loc> as the working directory and specify the maven goals of
|
||||
your choice as arguments, e.g. <eclipse:eclipse>. For further
|
||||
information please refer to the eclipse help.
|
||||
|
||||
<<Issue:>> Would be nice, if the plugin generates the variable and a runner.
|
||||
|
||||
|
||||
* {Simple Project}
|
||||
|
||||
If you have a simple java project which is made up of only one
|
||||
module, using eclipse is very simple. To generate the eclipse project
|
||||
files from your POM you execute the following command:
|
||||
|
||||
+----+
|
||||
|
||||
mvn eclipse:eclipse
|
||||
|
||||
+----+
|
||||
|
||||
If you have created or checked out the project with eclipse, you only
|
||||
have to refresh the project in your workspace. Otherwise you have to
|
||||
import the project into your eclipse workspace (From the menu bar,
|
||||
select File >Import >Existing Projects into Workspace). In the
|
||||
latter case the project (directory) should not be located in your
|
||||
workspace, because eclipse might come into trouble, especially if you
|
||||
want to use eclipse as the scm client.
|
||||
|
||||
* {Multiple Module Project}
|
||||
|
||||
Due to the workspace idea many eclipse users are used to a flat
|
||||
layout and therefore want to keep this structure, which is possible
|
||||
but not recommended. Actually, the only reason for a {{{#Flat Project
|
||||
Layout}flat multiple module project layout}} is the possibility to
|
||||
checkout and edit the parent POM without checking out the whole
|
||||
project. The following sample shows how to handle maven multiple
|
||||
module projects with eclipse while keeping the
|
||||
{{{http://maven.apache.org/guides/mini/guide-multi-module.html}recommended
|
||||
hierachical project layout}}.
|
||||
|
||||
|
||||
** {Step by Step from Scratch}
|
||||
|
||||
Supposing eclipse is your favorite SCM client, this step by step
|
||||
example shows how to set up a new mutiple module project.
|
||||
|
||||
[[1]] Set up a new eclipse workspace called <step-by-step> and add
|
||||
the <M2_REPO> classpath variable as {{{#Maven 2 repository}described
|
||||
above}}.
|
||||
|
||||
[[1]] Open the command line shell and change to the newly created workspace directory.
|
||||
|
||||
[[1]] From the command line change to newly created <step-by-step>
|
||||
workspace and create a new maven project using the archetype plugin.
|
||||
|
||||
+----+
|
||||
mvn archetype:create -DgroupId=guide.ide.eclipse -DartifactId=guide-ide-eclipse
|
||||
+----+
|
||||
|
||||
[[1]] Create a new simple project <guide-ide-eclipse> inside the
|
||||
<step-by-step> workspace with eclipse (From the menu bar, select
|
||||
File >New >Project. Select Simple >Project). Eclipse will
|
||||
create a simple <.project>-file for your <guide-ide-eclipse>-project
|
||||
and you should be able to see the <pom.xml>-file.
|
||||
|
||||
[[1]] Delete the <src>-folder and open the <pom.xml>-file to change
|
||||
the packaging of your parent project to <pom>
|
||||
|
||||
+----+
|
||||
<packaging>pom</packaging>
|
||||
+----+
|
||||
|
||||
<<Issue:>> mvn eclipse:eclipse may should generate a simple
|
||||
<.project>-file for pom types.
|
||||
|
||||
[[1]] From the command line change to the <guide-ide-eclipse> project
|
||||
directory and create some modules.
|
||||
|
||||
+----+
|
||||
cd guide-ide-eclipse
|
||||
mvn archetype:create -DgroupId=guide.ide.eclipse -DartifactId=guide-ide-eclipse-site
|
||||
mvn archetype:create -DgroupId=guide.ide.eclipse.core -DartifactId=guide-ide-eclipse-core
|
||||
mvn archetype:create -DgroupId=guide.ide.eclipse.module1 -DartifactId=guide-ide-eclipse-module1
|
||||
+----+
|
||||
|
||||
[[1]] Add the newly created modules to your parent pom.
|
||||
|
||||
+----+
|
||||
<modules>
|
||||
<module>guide-ide-eclipse-site</module>
|
||||
<module>guide-ide-eclipse-core</module>
|
||||
<module>guide-ide-eclipse-module1</module>
|
||||
</modules>
|
||||
+----+
|
||||
|
||||
[[1]] Add the parent to the POMs of the new modules:
|
||||
|
||||
+----+
|
||||
<parent>
|
||||
<groupId>guide.ide.eclipse</groupId>
|
||||
<artifactId>guide-ide-eclipse</artifactId>
|
||||
<version>1.0-SNAPSHOT</version>
|
||||
</parent>
|
||||
+----+
|
||||
|
||||
[[1]] Add dependency from <module1> to the <core>-module:
|
||||
|
||||
+----+
|
||||
<dependency>
|
||||
<groupId>guide.ide.eclipse.core</groupId>
|
||||
<artifactId>guide-ide-eclipse-core</artifactId>
|
||||
<version>1.0-SNAPSHOT</version>
|
||||
</dependency>
|
||||
+----+
|
||||
|
||||
[[1]] Install the project in your local repository and generate the eclipse files:
|
||||
|
||||
+----+
|
||||
mvn install
|
||||
mvn eclipse:eclipse
|
||||
+----+
|
||||
|
||||
[[1]] Check in your project using the eclipse team support (select
|
||||
from the context menu Team >Share Project). <Note:> Don not check
|
||||
in the generated eclipse files. If you use CVS you should have a
|
||||
<.cvsignore>-file with the following entries for each module:
|
||||
|
||||
+----+
|
||||
target
|
||||
.classpath
|
||||
.project
|
||||
.wtpmodules
|
||||
+----+
|
||||
|
||||
Even the parent project should have this <.cvsignore>-file. Eclipse
|
||||
will automatically generate a new simple <.project>-file when you
|
||||
check out the project from the repository.
|
||||
|
||||
<<Issue:>> Plugin should optionally generate the <.cvsignore>-files.
|
||||
|
||||
[]
|
||||
|
||||
From now on you have different options to proceed. If you are working
|
||||
on all modules simultanously and you rather have eclipse project
|
||||
dependencies than binary dependencies, you should set up a new workspace
|
||||
and import all projects form <step-by-step/guide-ide-eclipse>. Note,
|
||||
you have to delete the <.project>-file of your parent project
|
||||
before. The result is equals to checking out the whole project from
|
||||
the command line, running <mvn eclipse:eclipse> and finally importing
|
||||
the projects into your eclipse workspace. In both cases you will be
|
||||
able to synchronize your changes using eclipse.
|
||||
|
||||
In case of large projects whith many people it can be quite tedious
|
||||
to check out all modules and keep them up to date. Especially if you
|
||||
are only interested in one or two modules. In this case using binary
|
||||
dependencies is much more comfortable. Just check out the modules you
|
||||
want to work on with eclipse and run <mvn eclipse:eclipse> for each
|
||||
module (see also {{{#Maven as an external tool}Maven as an external
|
||||
tool}}). Of course all referenced artifacts have to be available from
|
||||
your maven repository.
|
||||
|
||||
<<Issue:>> The maven-eclipse-plugin should optionally generate
|
||||
project dependencies for those modules which are available in the
|
||||
workspace.
|
||||
|
||||
** {Flat Project Layout}
|
||||
|
||||
It is possible to move the parent POM in its own directory on the
|
||||
same level with the referenced modules.
|
||||
|
||||
[[1]] Create a new directory under <guide-ide-eclipse> called
|
||||
<guide-ide-eclipse-project> and move the parent POM to it.
|
||||
|
||||
[[1]] Change the module references in the parent POM to:
|
||||
|
||||
+----+
|
||||
<modules>
|
||||
<module>../guide-ide-eclipse-site</module>
|
||||
<module>../guide-ide-eclipse-core</module>
|
||||
<module>../guide-ide-eclipse-module1</module>
|
||||
</modules>
|
||||
+----+
|
||||
[]
|
||||
|
||||
<<Issue:>> The release plugin does not support the flat structure
|
||||
({{{http://jira.codehaus.org/browse/MNG-1263}MNG-1263}})
|
||||
|
|
Loading…
Reference in New Issue