【问题标题】:Multi Module Maven2 Project with WTP带有 WTP 的多模块 Maven 项目
【发布时间】:2010-10-29 15:48:32
【问题描述】:

我很难让具有深层项目结构的 Maven2 多模块项目显示为要部署在我的我的 Eclipse Ganymede 中的 JBOSS 5 服务器(选项卡服务器)。

我一直在尝试使用 Maven Eclipse 插件将我的项目变成 WTP 项目,但没有成功。因此,它们似乎部署在服务器中,它们显示为独立的项目。

我的项目有 1 个 war、2 个 ejb 和 1 个 jar 必须打包在一个耳朵里,每个“子项目”都是一个单独的模块。

项目的 pom.xml(类型 pom):

...

<modules>
   <module>ejb1</module>
   <module>ejb2</module>
   <module>war</module>
   <module>jar</module>
   <module>ear</module>
</modules>

...

耳模块只负责将其他模块打包在一起。

有没有办法告诉 eclipse (ganymede) 所有这些项目(ejbs、war 和 jar)都在 ear 模块中,以便我可以在服务器中部署 ear?

【问题讨论】:

    标签: java eclipse maven-2 eclipse-wtp


    【解决方案1】:

    您想要做的是让 maven 通过 mvn eclipse:eclipse This 创建 eclipse 项目可能会有所帮助。

    【讨论】:

      【解决方案2】:

      尝试 m2eclipse (google it) 并安装 WTP 集成工具,使用 maven 向导创建一个项目,在 pom xml 编辑器中将类型更改为 pom,从 pom 创建一个子模块并将其添加为子模块,如果它是一个 Web 项目,它获得 WTP 行为,即它可以部署到 j2ee 容器(jboss / tomcat),在 web pom 等中为 ejb 模块的 web 模块添加一个 dep,将 web 应用程序部署到容器

      【讨论】:

        【解决方案3】:

        使用可选的 WTP 配置安装 m2eclipse 对我有用。我还在我的父 pom 中添加了以下内容,以确保 eclipse 文件中的正确性质和构建器

        这会生成准备好用于 m2eclipse 的 eclipse .project 文件。然后我可以使用 m2eclipse 更新项目文件,允许热部署 webapp 及其依赖项

        <build>
          ...
                <plugin>
            <artifactId>maven-eclipse-plugin</artifactId>
            <version>2.5.1</version>
              <!--
              Eclipse project natures: http: //vikashazrati.wordpress.com/2007/12/22/adding-project-nature-to-your-maven-pomxml/
              Maven-eclipse-plugin: http: //maven.apache.org/plugins/maven-eclipse-plugin/
              -->
              <configuration>
              <additionalProjectnatures>
              <projectnature>org.springframework.ide.eclipse.core.springnature</projectnature>
              <projectnature>org.eclipse.jem.workbench.JavaEMFNature</projectnature>
              <projectnature>org.eclipse.wst.common.modulecore.ModuleCoreNature</projectnature>
              <projectnature>org.eclipse.wst.common.project.facet.core.nature</projectnature>
              <projectnature>org.eclipse.jdt.core.javanature</projectnature>
              <projectnature>org.eclipse.wst.jsdt.core.jsNature</projectnature>
              <projectnature>org.maven.ide.eclipse.maven2Nature</projectnature>
              </additionalProjectnatures>
              <buildcommands>
               <buildcommand>org.eclipse.wst.jsdt.core.javascriptValidator</buildcommand>
               <buildcommand>org.eclipse.jdt.core.javabuilder</buildcommand>
               <buildcommand>org.eclipse.wst.common.project.facet.core.builder</buildcommand>
               <buildcommand>org.eclipse.wst.validation.validationbuilder</buildcommand>
               <buildcommand>org.springframework.ide.eclipse.core.springbuilder</buildcommand>
                  <buildcommand>org.maven.ide.eclipse.maven2Builder</buildcommand>
        
              </buildcommands>
              </configuration>
        
          </plugin>
        

        【讨论】:

          【解决方案4】:

          在超级 pom 项目中使用 maven 的 -Dwtpversion=2.0 参数或命令行 mvn -Dwtpversion=2.0 。我使用 m2eclipse 插件,但在多模块项目中遇到了一些问题。我使用 m2eclipse 插件进行依赖管理。如果我想用超级 pom 清理、安装等所有项目,我会在命令行上进行。项目属性也必须在 eclipse 中检查。项目方面,Java EE 模块依赖项必须检查。也可以导出到ear项目,但要注意修改后的maven模块是否编译。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2018-12-29
            • 1970-01-01
            • 2011-08-21
            • 1970-01-01
            • 2017-05-31
            • 1970-01-01
            • 2018-02-06
            相关资源
            最近更新 更多