我无法导入启用了WTP功能的Maven项目。

我已经尝试过:

mvn -Dwtpversion=R7 eclipse:eclipse


导入时,未启用WTP功能。

如何在启用功能的情况下导入?

最佳答案

Maven-eclipse-plugin是否会按预期生成.wtpmodules文件?这是在war项目上运行相同命令时得到的结果:

$ mvn -Dwtpversion=R7 eclipse:eclipse
[INFO] Scanning for projects...
[INFO] Searching repository for plugin with prefix: 'eclipse'.
[INFO] ------------------------------------------------------------------------
[INFO] Building maven-eclipse-plugin-wtp-testcase
[INFO]    task-segment: [eclipse:eclipse]
[INFO] ------------------------------------------------------------------------
[INFO] Preparing eclipse:eclipse
[INFO] No goals needed for project - skipping
[INFO] [eclipse:eclipse {execution: default-cli}]
[INFO] Adding support for WTP version R7.
[INFO] Using Eclipse Workspace: null
[INFO] Adding default classpath container: org.eclipse.jdt.launching.JRE_CONTAINER
[INFO] Not writing settings - defaults suffice
[INFO] Wrote Eclipse project for "maven-eclipse-plugin-wtp-testcase" to /home/pascal/Projects/maven-eclipse-plugin-wtp-testcase.
[INFO]
       Javadoc for some artifacts is not available.
       Please run the same goal with the -DdownloadJavadocs=true parameter in order to check remote repositories for javadoc.
       List of artifacts without a javadoc archive:
         o junit:junit:3.8.1

[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESSFUL
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 3 seconds
[INFO] Finished at: Tue Oct 27 22:49:17 CET 2009
[INFO] Final Memory: 9M/79M
[INFO] ------------------------------------------------------------------------
$ ls -a
.  ..  .classpath  pom.xml  .project  src  .wtpmodules
$ cat .wtpmodules
<project-modules id="moduleCoreId">
  <wb-module deploy-name="maven-eclipse-plugin-wtp-testcase">
    <module-type module-type-id="jst.web">
      <version>2.4</version>
      <property name="context-root" value="maven-eclipse-plugin-wtp-testcase"/>
    </module-type>
    <wb-resource deploy-path="/" source-path="/src/main/webapp"/>
    <wb-resource deploy-path="/WEB-INF/classes" source-path="src/main/java"/>
  </wb-module>
$


在我的环境中,eclipse插件似乎运行良好。

也就是说,WTP R7(0.7)相当老(它于2005年7月发布),可能不是您的配置的正确版本。根据Web Tools Platform downloads页,WTP 0.7和WTP 1.0与Eclipse 3.1一起使用,WTP 1.5与Eclipse 3.2一起使用,WTP 2.0与Eclipse 3.3,WTP 2.1和WTP 3.0与Eclipse 3.4一起,WTP 3.1与Eclipse 3.5一起使用。

所以问题是:您正在运行什么版本的Eclipse和WTP?

插件实际上可以创建WTP Support页上提到的WTP R7、1.0、1.5和2.0配置文件(documentation of the wtpversion optional parameter当前缺少2.0,但这是一个文档错误,请参见MECLIPSE-434)。我已经在Eclipse 3.5.1 + WTP 3.1中成功导入了一个生成的WTP 2.0项目,因此对于最新版本的Eclipse(无论MECLIPSE-559是什么),都可以使用2.0。

注意:如果不想在命令行上传递wtpversion,可以在pom.xml的maven-eclipse-plugin配置中设置它,如下所示:

    <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-eclipse-plugin</artifactId>
      <configuration>
        <wtpversion>2.0</wtpversion>
        ...
      </configuration>
    </plugin>

09-27 05:54