如何配置Gradle以构建Java EE项目

时间:2016-03-11 17:15:23

标签: eclipse java-ee gradle deployment

我尝试设置一个用gradle构建的Java EE环境。最后,我希望有一个包含EJB-Jar的EAR文件和某种可以部署到Glassfish(可能)的应用程序客户端。设置将非常基础。

目前我遇到两个问题:

1)运行耳朵'组装EAR存档的任务在tmp / ear中创建一个错误的application.xml文件,如下所示:

<?xml version="1.0"?>
<application xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/application_6.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="6">
  <display-name>DataViewerEAR</display-name>
  <library-directory>lib</library-directory>
</application>

eclipse报告的错误消息是:

  

cvc-complex-type.2.4.a:找到无效的内容   元素&#39; library-directory&#39;。之一   &#39; {&#34; http://java.sun.com/xml/ns/javaee&#34;:显示名称,   &#34; http://java.sun.com/xml/ns/javaee&#34;:图标,   &#34; http://java.sun.com/xml/ns/javaee&#34;:初始化-有序,   &#34; http://java.sun.com/xml/ns/javaee&#34;:模块}&#39;是预期的。

我在earContent / META-INF中借助eclipse创建的部署描述符文件似乎被忽略了:

<?xml version="1.0" encoding="UTF-8"?>
<application xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/application_7.xsd" version="7">
  <display-name>DataViewerEAR</display-name>
  <module>
    <ejb>DataViewerEJB.jar</ejb>
  </module>
  <module>
    <java>DataViewerTestClient.jar</java>
  </module>
</application>

合成的EAR文件的内容看起来不错。

2)生成的EJB构建jar是空的。我认为主要问题是EJB项目的结构与假定的src / main / java等不匹配,我不知道如何更改它。我当前的EJB项目的build.gradle文件如下所示:

apply plugin: 'java'

repositories {
    jcenter()
}

dependencies {
        compile 'ch.qos.logback:logback-classic:1.1.5'
        testCompile 'junit:junit:4.12'
}

如果有人能告诉我在配置应用程序时需要注意哪些事情,那也会很棒。部署描述符和其他.xml文件。不要忘记任何事情......

1 个答案:

答案 0 :(得分:0)

据我发现,使gradle找到类的最简单方法是修改sourceSets。在我的情况下添加

sourceSets {
      main {
         java {
            srcDir 'ejbModule'  
            } 
         }
      test {
         java {
            srcDir 'test'
            } 
         }
    }

到EJB构建文件和

appDirName "EarContent"
在我的情况下,对于EAR构建文件的

似乎已经足够了,虽然我无法测试它,因为还有其他问题。