对于我正在开发的项目,我已经定义了自定义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>
我是对的吗?
答案 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配置。