maven为自定义包装生成eclipse项目

时间:2010-03-16 13:35:45

标签: eclipse maven-2 packaging

对于我正在开发的项目,我已经定义了自定义maven包装和相关的生命周期(通过components.xml的定义和LifecycleMapping的定义)。

显然,这个包装对应于一个特定的开发,在Eclipse中创建了一个插件。我想要做的是根据我的pom.xml内容配置Eclipse。

我显然看过Customizable build lifecycle,但我对提供的信息感到困惑。

根据我的理解,我必须在我的目标项目中定义一个构建插件,在其中我将添加特定于我的项目的配置元素。例如,有一个名为mycompany.mydev.MyEclipseConfigurator的配置程序,我将不得不写

  <build>
    <plugins>
      <plugin>
        <groupId>org.maven.ide.eclipse</groupId>
        <artifactId>lifecycle-mapping</artifactId>
        <version>0.9.9-SNAPSHOT</version>
        <configuration>
          <mappingId>customizable</mappingId>
          <configurators>
            <configurator id='mycompany.mydev.MyEclipseConfigurator'/>
          </configurators>
        </configuration>
      </plugin>
    </plugins>
  </build>

我是对的吗?

2 个答案:

答案 0 :(得分:1)

事实上,之前提到的文档是指maven eclipse插件的弃用版本。

The most up-to-date version清楚地说明了如何通过指定项目的性质和构建器从maven pom.xml中配置eclipse项目。

答案 1 :(得分:1)

我的自定义打包问题是,Maven没有认识到该项目是基于Java的,因此Maven Eclipse插件没有在.project文件中生成正确的条目,也没有生成.classpath

首先可以通过在POM中添加正确的构建命令和性质来纠正,但仍然没有为您提供.classpath

解决方案是将以下片段添加到components.xml

  <component>
        <role>org.apache.maven.artifact.handler.ArtifactHandler
        </role>
        <role-hint>(fill in your own packaging)</role-hint>
        <implementation>
            org.apache.maven.artifact.handler.DefaultArtifactHandler
        </implementation>
        <configuration>
            <type>(fill in your own packaging)</type>
            <extension>(choose war or jar if required)</extension>
            <language>java</language>
            <addedToClasspath>true</addedToClasspath>
        </configuration>
    </component>

通过此添加,MEP会将您的项目视为普通的JAR或WAR项目,并为其生成预期的Eclipse配置。