0

我正在使用 gradle 来设置多项目构建。我有以下项目的文件夹布局:

---RootProject
---- build.gradle
---- settings.gradle
------ JarProject (Utility) 
--------- build.gradle
------ JpaProject (Dependency on JarProject)
--------- build.gradle
------ EjbProject (Dependency on JarProject, JpaProject)
--------- build.gradle
------ WebProject (Dependency on EjbProject)
--------- build.gradle

工具与技术

  • 梯度:1.6
  • 爪哇:1.7
  • 日食:朱诺
  • 服务器:Glassfish 3.1.2.2

我能够为上述文件夹布局定义多项目构建。Gradle 能够为我能够将所有项目导入到 Eclipse 的每个项目生成 Eclipse 元数据。Gradle 能够正确生成“.ear”工件。但是,我无法从 Eclipse 部署 Ear 项目。在部署期间,eclipse 给出了 NullPointerException。

为了告诉 Gradle 为 EarProject、EjbProject 和 JpaProject 生成适当的 facet,我添加了以下代码:* EarProject/build.gradle

apply plugin: 'ear'
apply plugin: 'eclipse-wtp'
eclipse {
    wtp {
       facet {
        facet name:'jst.ear', version:'6.0'
       }
    }
}

* EjbProject/build.gradle

apply plugin: 'war'
apply plugin: 'eclipse-wtp'
eclipse {
    wtp {
       facet {
        facet name:'jst.ejb', version:'3.1'
       }
    }
}
  • JpaProject/build.gradle

    应用插件:'war' 应用插件:'eclipse-wtp' eclipse { wtp { facet { facet name:'java', version:'1.6' facet name:'jpt.jpa', version:'2.0' } } }

  • WebProject/build.gradle

    apply plugin: 'war' apply plugin: 'eclipse-wtp' eclipse { wtp { facet { facet name:'java', version:'1.6' facet name:'jst.web', version:'3.0' facet name:' wst.jsdt.web',版本:'1.0' } } }

请注意,即使 EjbProject 和 JpaProject 不是 Web 项目,也会应用插件“war”。因为这个 gradle 认为 EjbProject 和 JpaProject 是 web 项目并相应地创建 eclipse 元数据。

  • 对于 EjbProject/JpaProject,文件“org.eclipse.wst.common.component”有以下内容

    <property name="context-root" value="prj-context"/>

    <wb-resource deploy-path="/WEB-INF/classes" source-path="src/main/java"/>

    <wb-resource deploy-path="/WEB-INF/classes" source-path="src/main/java"/>

因此,当我将 EjbProject/JpaProject 导出到 ejb-jar 或 jar 文件时,eclipse 不会创建正确的 jar 文件。

另一个问题是我无法使用 eclipse“File->Export->Ear File”将 EarProject 导出到“.ear”文件。我得到一个例外

当我尝试从 Eclipse 中部署 EarProject 时,它会给出 NullPointerException。

我的想法是将 EarProject 从 eclipse 中部署到 eclipse 中定义的 Glassfish 服务器并调试应用程序。

请给我指导。

钛酸

4

0 回答 0