更新maven项目中的.settings/org.eclipse.wst.common.component文件

Ger*_*Ger 6 eclipse maven-2 maven

我在eclipse中使用maven项目,并且在没有手动编辑xml文件的情况下无法使部署工作.

当我通过maven构建项目时,我在.settings文件夹中获得了一个org.eclipse.wst.common.component xml文件.该文件如下所示:

<?xml version="1.0" encoding="UTF-8"?>
<project-modules id="moduleCoreId" project-version="1.5.0">
    <wb-module deploy-name="ins-web">           
        <wb-resource deploy-path="/" source-path="/WebContent"/>
        <wb-resource deploy-path="/WEB-INF/classes" source-path="/src/java"/>
        <property name="context-root" value="ins-web"/>
        <property name="java-output-path"/>
    </wb-module>
</project-modules>
Run Code Online (Sandbox Code Playgroud)

以下行导致问题:

<wb-resource deploy-path="/" source-path="/WebContent"/>
Run Code Online (Sandbox Code Playgroud)

它希望部署在WebContent文件夹下面的所有内容,实际上它应该在src/webapp中查找.因此该行应如下所示:

<wb-resource deploy-path="/" source-path="/src/webapp"/>
Run Code Online (Sandbox Code Playgroud)

如果我手动更改它然后一切正常,但我想知道是否有办法避免手动更改文件,以使我的团队中的其他人更容易构建过程.

Pet*_*nch 4

你是如何生成 eclipse 文件的。您使用的是m2eclipse Eclipse 插件还是maven-eclipse-plugin?m2eclipse 是 Eclipse 的插件,在 Eclipse 内运行。maven-eclipse-plugin 是一个从 cmd 行运行的 Maven 插件,用于根据 pom.xml 生成 Eclipse 项目文件。

我使用 maven-eclipse-plugin 总是取得更好的成功。m2eclipse 的作者不建议您尝试同时使用这两个插件。

如果您使用 maven-eclipse-plugin,您应该检查一些事情。

  1. 使用最新的 maven-eclipse-plugin 版本 2.7。
  2. 确保您的项目是“战争”包装
  3. 还要配置 maven-war-plugin 并根据需要设置 war 源目录。将以下代码片段添加到您的 pom.xml 中。这就是 maven-eclipse-plugin 确定您的 web 应用程序所在位置的方式。
  <插件>  
    <artifactId>maven-war-plugin</artifactId>  
    <版本>2.1-beta-1</版本>  
    <配置>  
      <warSourceDirectory>src/webapp</warSourceDirectory>  
    </配置>  
  </插件>

进行这些更改并mvn eclipse:clean eclipse:eclipse再次运行后,您应该在组件文件中看到预期的值。

  • 听起来您认为 maven-eclipse-plugin 是在 eclipse 内运行的 Eclipse 插件。它不是。它是一个从 cmd 行执行的 Maven 插件。warSourceDirectory 是在项目的 Maven pom.xml 中找到的 maven-war-plugin 配置的一部分。 (2认同)