我尝试设置一个用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文件。不要忘记任何事情......
答案 0 :(得分:0)
据我发现,使gradle找到类的最简单方法是修改sourceSets。在我的情况下添加
sourceSets {
main {
java {
srcDir 'ejbModule'
}
}
test {
java {
srcDir 'test'
}
}
}
到EJB构建文件和
appDirName "EarContent"
在我的情况下,对于EAR构建文件的似乎已经足够了,虽然我无法测试它,因为还有其他问题。