我正在使用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
工具&技术
我可以为上面的文件夹布局定义多项目构建。 Gradle能够为我能够将所有项目导入eclipse的每个项目生成eclipse元数据。 Gradle能够正确生成" .ear"神器。但是,我无法从eclipse部署Ear项目。在部署期间,eclipse提供了NullPointerException。
为了告诉Gradle为EarProject,EjbProject和JpaProject生成适当的方面,我添加了以下代码: * 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 { 方面名称:' java',版本:' 1.6' 方面名称:' jpt.jpa',版本:' 2.0' } } }
WebProject /的build.gradle
申请插件:' war' 申请插件:' eclipse-wtp' eclipse { wtp { facet { 方面名称:' java',版本:' 1.6' 方面名称:' jst.web',版本:' 3.0' 方面名称:' 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"值=" PRJ上下文" />
< wb-resource deploy-path =" / WEB-INF / classes"源路径=" SRC /主/ JAVA" />
< wb-resource deploy-path =" / WEB-INF / classes"源路径=" SRC /主/ JAVA" />
因此,当我将EjbProject / JpaProject导出到ejb-jar或jar文件时,eclipse不会创建正确的jar文件。
另一个问题是我无法将EarProject导出到" .ear"文件使用eclipse"文件 - >导出 - >耳文件"。我得到了一个例外
当我尝试在eclipse中部署EarProject时,它会产生NullPointerException。
我的想法是将eclipse中的EarProject部署到eclipse中定义的Glassfish服务器并调试应用程序。
请给我指导。
TIA CHIR