当前位置: 首页 > 知识库问答 >
问题:

如何配置Gradle来构建JavaEE项目

唐茂实
2023-03-14

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

目前我面临两个问题:

1)运行“耳朵”任务来组装EAR存档在tmp/耳朵中创建了一个错误的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复合型。2.4.答:发现以元素“library directory”开头的内容无效。“{”之一http://java.sun.com/xml/ns/javaee“:显示名称,”http://java.sun.com/xml/ns/javaee“:图标,”http://java.sun.com/xml/ns/javaee“:按顺序初始化,”http://java.sun.com/xml/ns/javaee应为“:module}”。

我在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个答案

傅胡媚
2023-03-14

据我所知,让gradle找到类的最简单方法是修改源集。就我而言

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

到EJB构建文件和

appDirName "EarContent"

对于我来说,EAR构建文件似乎已经足够了,尽管我无法测试它,因为还有其他问题。

 类似资料:
  • 构建配置说明 开发者可以在  build.json 中配置不同的配置参数来改变项目的构建方式,具体配置参数如下: 属性 类型 默认值 描述 turnOffSourceMap boolean false 是否开启 sourceMap(目前支付宝 IDE 存在不准确的情况) constantDir string/array src/constant 静态资源(只能放在 src 目录下) disable

  • 本文向大家介绍android-gradle 如何在build.gradle中配置构建类型,包括了android-gradle 如何在build.gradle中配置构建类型的使用技巧和注意事项,需要的朋友参考一下 示例 您可以build.gradle在android {}块内的模块级文件中创建和配置构建类型。            

  • 我按照以下指南将项目分为模块/子项目: https://docs.gradle.org/current/userguide/multi_project_builds.html 在主脚本中,我应用子项目的配置: 如果我从根build目录运行子项目build,这会很好: (成功构建

  • 我试图将mapstruct添加到gradle spring boot项目中。这里是构建的相关部分。gradle文件: 这是我的界面: 我在两个地方收到了我的映射器接口的生成实现:首先是预期的,但我的代码没有使用:构建/生成/源/... /LogMessageMapperImpl 第二个意外但由我的代码使用:app/src/main/generated//LogMessageMapperImpl 如

  • 我在Eclipse中创建了一个Java Maven项目,并把它放到了GIT中。 我的项目是一个Web项目,现在我已经查看了Eclipse中“项目浏览器”中的项目结构。它是这样的: 因此,正如您所看到的,我有两个src/main/java和src/test/java文件夹,但为什么我在上部没有src/main/Resources文件夹?这两个文件夹有什么区别,为什么我有两次src/main/java

  • 更新:如果我的项目不依赖于其他项目,我可以让gradle工作。但是,如果它确实引用了某个其他项目,我不知道如何引用另一个项目?我已经将引用的项目目录添加到存储库中,但我仍然得到“类不存在”错误。我的年级档案如下: