eclipse:m2eclipse

Creates an eclipse project that is ready to use with the M2Elipse plugin.

Mojo Attributes:

  • Requires a Maven 2.0 project to execute.
  • Since version: 2.4
  • Invokes the execution of the lifecycle phase generate-resources prior to executing itself.

Required Parameters

Name Type Description
buildOutputDirectory File The default output directory Default value is ${project.build.outputDirectory}.
useProjectReferences boolean When set to false, the plugin will not create sub-projects and instead reference those sub-projects using the installed package in the local repository Default value is true.

Optional Parameters

Name Type Description
addGroupIdToProjectName boolean If set to true, the groupId of the artifact is appended to the name of the generated Eclipse project. See projectNameTemplate for other options. Default value is false.
addVersionToProjectName boolean If set to true, the version number of the artifact is appended to the name of the generated Eclipse project. See projectNameTemplate for other options. Default value is false.
additionalBuildcommands List List of eclipse build commands to be added to the default ones. Old style:
<additionalBuildcommands>
<buildcommand>org.springframework.ide.eclipse.core.springbuilder</buildcommand>
</additionalBuildcommands>
New style:
<additionalBuildcommands>
<buildCommand>
<name>org.ui.externaltools.ExternalToolBuilder</name>
<triggers>auto,full,incremental,</triggers>
<arguments>
<LaunchConfigHandle>&lt;project&gt;./externalToolBuilders/MavenBuilder.launch</LaunchConfighandle>
</arguments>
</buildCommand>
</additionalBuildcommands>
Note the difference between buildcommand and buildCommand. You can mix and match old and new-style configuration entries.
additionalConfig EclipseConfigFile[] Allow to configure additional generic configuration files for eclipse that will be written out to disk when running eclipse:eclipse. FOr each file you can specify the name and the text content.
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-eclipse-plugin</artifactId>
<configuration>
<additionalConfig>
<file>
<name>.checkstyle</name>
<content>
<![CDATA[<fileset-config file-format-version="1.2.0" simple-config="true">
<fileset name="all" enabled="true" check-config-name="acme corporate style" local="false">
<file-match-pattern match-pattern="." include-pattern="true"/>
</fileset>
<filter name="NonSrcDirs" enabled="true"/>
</fileset-config>]]>
</content>
</file>
</additionalConfig>
</configuration>
</plugin>
Instead of the content you can also define (from version 2.5) an url to download the file :
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-eclipse-plugin</artifactId>
<configuration>
<additionalConfig>
<file>
<name>.checkstyle</name>
<url>http://some.place.org/path/to/file</url>
</file>
</additionalConfig>
</configuration>
or a location :
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-eclipse-plugin</artifactId>
<configuration>
<additionalConfig>
<file>
<name>.checkstyle</name>
<location>/checkstyle-config.xml</location>
</file>
</additionalConfig>
</configuration>
<dependencies>
<!-- The file defined in the location is stored in this dependency -->
<dependency>
<groupId>eclipsetest</groupId>
<artifactId>checkstyle-config</artifactId>
<version>1.0</version>
</dependency>
</dependencies>
</plugin>
additionalProjectFacets Map List of eclipse project facets to be added to the default ones.
<additionalProjectFacets>
<jst.jsf>1.1<jst.jsf/>
</additionalProjectFacets>
additionalProjectnatures List List of eclipse project natures to be added to the default ones.
<additionalProjectnatures>
<projectnature>org.springframework.ide.eclipse.core.springnature</projectnature>
</additionalProjectnatures>
artifactCollector ArtifactCollector Artifact collector, needed to resolve dependencies.
artifactFactory ArtifactFactory Artifact factory, needed to download source jars for inclusion in classpath.
artifactMetadataSource ArtifactMetadataSource No description.
artifactResolver ArtifactResolver Artifact resolver, needed to download source jars for inclusion in classpath.
buildcommands List List of eclipse build commands. By default the org.eclipse.jdt.core.javabuilder builder plus the needed WTP builders are added. If you specify any configuration for this parameter, only those buildcommands specified will be used; the defaults won't be added. Use the additionalBuildCommands parameter for that. Configuration example: Old style:
<buildcommands>
<buildcommand>org.eclipse.wst.common.modulecore.ComponentStructuralBuilder</buildcommand>
<buildcommand>org.eclipse.jdt.core.javabuilder</buildcommand>
<buildcommand>org.eclipse.wst.common.modulecore.ComponentStructuralBuilderDependencyResolver</buildcommand>
</buildcommands>
For new style, see additionalBuildCommands.
classpathContainers List List of container classpath entries. By default the org.eclipse.jdt.launching.JRE_CONTAINER classpath container is added. Configuration example:
<classpathContainers>
<classpathContainer>org.eclipse.jdt.launching.JRE_CONTAINER</classpathContainer>
<classpathContainer>org.eclipse.jst.server.core.container/org.eclipse.jst.server.tomcat.runtimeTarget/Apache Tomcat v5.5</classpathContainer>
<classpathContainer>org.eclipse.jst.j2ee.internal.web.container/artifact</classpathContainer>
</classpathContainers>
downloadJavadocs boolean Enables/disables the downloading of javadoc attachments. Defaults to false. When this flag is true remote repositories are checked for javadocs: in order to avoid repeated check for unavailable javadoc archives, a status cache is mantained into the target dir of the root project. Run mvn:clean or delete the file mvn-eclipse-cache.properties in order to reset this cache.
downloadSources boolean Enables/disables the downloading of source attachments. Defaults to false. When this flag is true remote repositories are checked for sources: in order to avoid repeated check for unavailable source archives, a status cache is mantained into the target dir of the root project. Run mvn:clean or delete the file mvn-eclipse-cache.properties in order to reset this cache.
eclipseDownloadSources boolean Enables/disables the downloading of source attachments. Defaults to false. DEPRECATED - use downloadSources
eclipseProjectDir File Eclipse workspace directory.
excludes List List of artifact to exclude from eclipse classpath, beeing provided by some eclipse classPathContainer [MECLIPSE-79]
limitProjectReferencesToWorkspace boolean Limit the use of project references to the current workspace. No project references will be created to projects in the reactor when they are not available in the workspace. Default value is false.
locator ResourceManager ResourceManager for getting additonalConfig files from resources
manifest File The relative path of the manifest file Default value is ${basedir}/META-INF/MANIFEST.MF.
packaging String The project packaging.
pde boolean Is it an PDE project? If yes, the plugin adds the necessary natures and build commands to the .project file. Additionally it copies all libraries to a project local directory and references them instead of referencing the files in the local Maven repository. It also ensured that the "Bundle-Classpath" in META-INF/MANIFEST.MF is synchronized. Default value is false.
projectNameTemplate String Allows configuring the name of the eclipse projects. This property if set wins over addVersionToProjectName and addGroupIdToProjectName You can use [groupId], [artifactId] and [version] variables. eg. [groupId].[artifactId]-[version]
projectnatures List List of eclipse project natures. By default the org.eclipse.jdt.core.javanature nature plus the needed WTP natures are added. Natures added using this property replace the default list.
<projectnatures>
<projectnature>org.eclipse.jdt.core.javanature</projectnature>
<projectnature>org.eclipse.wst.common.modulecore.ModuleCoreNature</projectnature>
</projectnatures>
skip boolean Skip the operation when true. Default value is false.
workspace String This eclipse workspace is read and all artifacts detected there will be connected as eclipse projects and will not be linked to the jars in the local repository. Requirement is that it was created with the similar wtp settings as the reactor projects, but the project name template my differ. The pom's in the workspace projects may not contain variables in the artefactId, groupId and version tags.
wtpContextName String JEE context name of the WTP module. ( ex. WEB context name ).
wtpapplicationxml boolean Must the application files be written for ear projects in a separate directory. Default value is false.
wtpdefaultserver String What WTP defined server to use for deployment informations.
wtpmanifest boolean Must the manifest files be written for java projects so that that the jee classpath for wtp is correct. Default value is false.
wtpversion String The version of WTP for which configuration files will be generated. The default value is "none" (don't generate WTP configuration), supported versions are "R7", "1.0", and "1.5" Default value is none.

Parameter Details

addGroupIdToProjectName If set to true, the groupId of the artifact is appended to the name of the generated Eclipse project. See projectNameTemplate for other options.
  • Type: boolean
  • Required: No
  • Expression: ${eclipse.addGroupIdToProjectName}
  • Default: false

addVersionToProjectName If set to true, the version number of the artifact is appended to the name of the generated Eclipse project. See projectNameTemplate for other options.
  • Type: boolean
  • Required: No
  • Expression: ${eclipse.addVersionToProjectName}
  • Default: false

additionalBuildcommands List of eclipse build commands to be added to the default ones. Old style:
<additionalBuildcommands>
<buildcommand>org.springframework.ide.eclipse.core.springbuilder</buildcommand>
</additionalBuildcommands>
New style:
<additionalBuildcommands>
<buildCommand>
<name>org.ui.externaltools.ExternalToolBuilder</name>
<triggers>auto,full,incremental,</triggers>
<arguments>
<LaunchConfigHandle>&lt;project&gt;./externalToolBuilders/MavenBuilder.launch</LaunchConfighandle>
</arguments>
</buildCommand>
</additionalBuildcommands>
Note the difference between buildcommand and buildCommand. You can mix and match old and new-style configuration entries.
  • Type: java.util.List
  • Required: No

additionalConfig Allow to configure additional generic configuration files for eclipse that will be written out to disk when running eclipse:eclipse. FOr each file you can specify the name and the text content.
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-eclipse-plugin</artifactId>
<configuration>
<additionalConfig>
<file>
<name>.checkstyle</name>
<content>
<![CDATA[<fileset-config file-format-version="1.2.0" simple-config="true">
<fileset name="all" enabled="true" check-config-name="acme corporate style" local="false">
<file-match-pattern match-pattern="." include-pattern="true"/>
</fileset>
<filter name="NonSrcDirs" enabled="true"/>
</fileset-config>]]>
</content>
</file>
</additionalConfig>
</configuration>
</plugin>
Instead of the content you can also define (from version 2.5) an url to download the file :
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-eclipse-plugin</artifactId>
<configuration>
<additionalConfig>
<file>
<name>.checkstyle</name>
<url>http://some.place.org/path/to/file</url>
</file>
</additionalConfig>
</configuration>
or a location :
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-eclipse-plugin</artifactId>
<configuration>
<additionalConfig>
<file>
<name>.checkstyle</name>
<location>/checkstyle-config.xml</location>
</file>
</additionalConfig>
</configuration>
<dependencies>
<!-- The file defined in the location is stored in this dependency -->
<dependency>
<groupId>eclipsetest</groupId>
<artifactId>checkstyle-config</artifactId>
<version>1.0</version>
</dependency>
</dependencies>
</plugin>
  • Type: org.apache.maven.plugin.eclipse.EclipseConfigFile[]
  • Required: No

additionalProjectFacets List of eclipse project facets to be added to the default ones.
<additionalProjectFacets>
<jst.jsf>1.1<jst.jsf/>
</additionalProjectFacets>
  • Type: java.util.Map
  • Required: No

additionalProjectnatures List of eclipse project natures to be added to the default ones.
<additionalProjectnatures>
<projectnature>org.springframework.ide.eclipse.core.springnature</projectnature>
</additionalProjectnatures>
  • Type: java.util.List
  • Required: No

artifactCollector Artifact collector, needed to resolve dependencies.
  • Type: org.apache.maven.artifact.resolver.ArtifactCollector
  • Required: No

artifactFactory Artifact factory, needed to download source jars for inclusion in classpath.
  • Type: org.apache.maven.artifact.factory.ArtifactFactory
  • Required: No

artifactMetadataSource No Description.
  • Type: org.apache.maven.artifact.metadata.ArtifactMetadataSource
  • Required: No

artifactResolver Artifact resolver, needed to download source jars for inclusion in classpath.
  • Type: org.apache.maven.artifact.resolver.ArtifactResolver
  • Required: No

buildOutputDirectory The default output directory
  • Type: java.io.File
  • Required: Yes
  • Expression: ${outputDirectory}
  • Default: ${project.build.outputDirectory}

buildcommands List of eclipse build commands. By default the org.eclipse.jdt.core.javabuilder builder plus the needed WTP builders are added. If you specify any configuration for this parameter, only those buildcommands specified will be used; the defaults won't be added. Use the additionalBuildCommands parameter for that. Configuration example: Old style:
<buildcommands>
<buildcommand>org.eclipse.wst.common.modulecore.ComponentStructuralBuilder</buildcommand>
<buildcommand>org.eclipse.jdt.core.javabuilder</buildcommand>
<buildcommand>org.eclipse.wst.common.modulecore.ComponentStructuralBuilderDependencyResolver</buildcommand>
</buildcommands>
For new style, see additionalBuildCommands.
  • Type: java.util.List
  • Required: No

classpathContainers List of container classpath entries. By default the org.eclipse.jdt.launching.JRE_CONTAINER classpath container is added. Configuration example:
<classpathContainers>
<classpathContainer>org.eclipse.jdt.launching.JRE_CONTAINER</classpathContainer>
<classpathContainer>org.eclipse.jst.server.core.container/org.eclipse.jst.server.tomcat.runtimeTarget/Apache Tomcat v5.5</classpathContainer>
<classpathContainer>org.eclipse.jst.j2ee.internal.web.container/artifact</classpathContainer>
</classpathContainers>
  • Type: java.util.List
  • Required: No

downloadJavadocs Enables/disables the downloading of javadoc attachments. Defaults to false. When this flag is true remote repositories are checked for javadocs: in order to avoid repeated check for unavailable javadoc archives, a status cache is mantained into the target dir of the root project. Run mvn:clean or delete the file mvn-eclipse-cache.properties in order to reset this cache.
  • Type: boolean
  • Required: No
  • Expression: ${downloadJavadocs}

downloadSources Enables/disables the downloading of source attachments. Defaults to false. When this flag is true remote repositories are checked for sources: in order to avoid repeated check for unavailable source archives, a status cache is mantained into the target dir of the root project. Run mvn:clean or delete the file mvn-eclipse-cache.properties in order to reset this cache.
  • Type: boolean
  • Required: No
  • Expression: ${downloadSources}

eclipseDownloadSources Enables/disables the downloading of source attachments. Defaults to false. DEPRECATED - use downloadSources
  • Type: boolean
  • Required: No
  • Expression: ${eclipse.downloadSources}

eclipseProjectDir Eclipse workspace directory.
  • Type: java.io.File
  • Required: No
  • Expression: ${eclipse.projectDir}

excludes List of artifact to exclude from eclipse classpath, beeing provided by some eclipse classPathContainer [MECLIPSE-79]
  • Type: java.util.List
  • Since: 2.5
  • Required: No

limitProjectReferencesToWorkspace Limit the use of project references to the current workspace. No project references will be created to projects in the reactor when they are not available in the workspace.
  • Type: boolean
  • Required: No
  • Expression: ${eclipse.limitProjectReferencesToWorkspace}
  • Default: false

locator ResourceManager for getting additonalConfig files from resources
  • Type: org.codehaus.plexus.resource.ResourceManager
  • Required: No

manifest The relative path of the manifest file
  • Type: java.io.File
  • Required: No
  • Expression: ${eclipse.manifest}
  • Default: ${basedir}/META-INF/MANIFEST.MF

packaging The project packaging.
  • Type: java.lang.String
  • Required: No
  • Expression: ${project.packaging}

pde Is it an PDE project? If yes, the plugin adds the necessary natures and build commands to the .project file. Additionally it copies all libraries to a project local directory and references them instead of referencing the files in the local Maven repository. It also ensured that the "Bundle-Classpath" in META-INF/MANIFEST.MF is synchronized.
  • Type: boolean
  • Required: No
  • Expression: ${eclipse.pde}
  • Default: false

projectNameTemplate Allows configuring the name of the eclipse projects. This property if set wins over addVersionToProjectName and addGroupIdToProjectName You can use [groupId], [artifactId] and [version] variables. eg. [groupId].[artifactId]-[version]
  • Type: java.lang.String
  • Required: No
  • Expression: ${eclipse.projectNameTemplate}

projectnatures List of eclipse project natures. By default the org.eclipse.jdt.core.javanature nature plus the needed WTP natures are added. Natures added using this property replace the default list.
<projectnatures>
<projectnature>org.eclipse.jdt.core.javanature</projectnature>
<projectnature>org.eclipse.wst.common.modulecore.ModuleCoreNature</projectnature>
</projectnatures>
  • Type: java.util.List
  • Required: No

skip Skip the operation when true.
  • Type: boolean
  • Required: No
  • Expression: ${eclipse.skip}
  • Default: false

useProjectReferences When set to false, the plugin will not create sub-projects and instead reference those sub-projects using the installed package in the local repository
  • Type: boolean
  • Required: Yes
  • Expression: ${eclipse.useProjectReferences}
  • Default: true

workspace This eclipse workspace is read and all artifacts detected there will be connected as eclipse projects and will not be linked to the jars in the local repository. Requirement is that it was created with the similar wtp settings as the reactor projects, but the project name template my differ. The pom's in the workspace projects may not contain variables in the artefactId, groupId and version tags.
  • Type: java.lang.String
  • Since: 2.5
  • Required: No
  • Expression: ${eclipse.workspace}

wtpContextName JEE context name of the WTP module. ( ex. WEB context name ).
  • Type: java.lang.String
  • Required: No
  • Expression: ${wtpContextName}

wtpapplicationxml Must the application files be written for ear projects in a separate directory.
  • Type: boolean
  • Required: No
  • Expression: ${eclipse.wtpapplicationxml}
  • Default: false

wtpdefaultserver What WTP defined server to use for deployment informations.
  • Type: java.lang.String
  • Required: No
  • Expression: ${eclipse.wtpdefaultserver}

wtpmanifest Must the manifest files be written for java projects so that that the jee classpath for wtp is correct.
  • Type: boolean
  • Required: No
  • Expression: ${eclipse.wtpmanifest}
  • Default: false

wtpversion The version of WTP for which configuration files will be generated. The default value is "none" (don't generate WTP configuration), supported versions are "R7", "1.0", and "1.5"
  • Type: java.lang.String
  • Required: No
  • Expression: ${wtpversion}
  • Default: none