- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个巨大的遗留 EAR 项目。当前的构建过程使用 Ant,我正在尝试转换为 gradle。
旧的 Ant 构建使用单个源文件夹,所有内容都在其中(EJB 和 WAR 代码一起);然后 Ant 使用不同的任务来构建 EJB-JAR 和 WAR 工件,按感兴趣的包过滤(my.web.*
用于 WAR,my.ejb.*
用于 EJB)。
不言而喻,EJB 和 WAR 相互大量引用,我想这就是为什么即使生成了单独的工件,它们也会被编译在一起的原因。
我尝试创建一个父 EAR 项目,然后分离 my.ejb.*
在 EJB 子项目中以及 my.web.*
在 WAR 子项目中,但 gradle 立即提示循环依赖,我还没有找到解决方法。
如果上述方法不可行,那么我正在寻找有关如何从将完全编译的相同代码库生成 EJB-JAR 和 WAR 工件的建议,然后将它们作为“部署”依赖项包含在 EAR 文件中。
我在谷歌上搜索过,但我对 gradle 不是很聪明(显然)。任何帮助将不胜感激。
最佳答案
我认为您在第一次尝试将现有的 ant 项目转换为 Gradle 时陷入了我们许多人所遇到的陷阱 - 您正在以同样的方式思考事情。
相反,让 Gradle 为您完成工作,它会更容易,生成的 build.gradle 文件会更小更简洁。
然而,考虑拥有一个父耳朵项目和一个单独的 war 项目是很好的想法。但是,您应该利用 Gradle 提供的插件来简化构建文件的任务。
使用“耳朵插件”:
https://docs.gradle.org/current/userguide/war_plugin.html
例如:
apply plugin: 'ear'
apply plugin: 'java'
repositories { mavenCentral() }
dependencies {
// The following dependencies will be the ear modules and
// will be placed in the ear root
deploy project(':war')
// The following dependencies will become ear libs and will
// be placed in a dir configured via the libDirName property
earlib group: 'log4j', name: 'log4j', version: '1.2.15', ext: 'jar'
}
ear {
appDirName 'src/main/app' // use application metadata found in this folder
// put dependent libraries into APP-INF/lib inside the generated EAR
libDirName 'APP-INF/lib'
deploymentDescriptor { // custom entries for application.xml:
// fileName = "application.xml" // same as the default value
// version = "6" // same as the default value
applicationName = "customear"
initializeInOrder = true
displayName = "Custom Ear" // defaults to project.name
// defaults to project.description if not set
description = "My customized EAR for the Gradle documentation"
// libraryDirectory = "APP-INF/lib" // not needed, above libDirName setting does this
// module("my.jar", "java") // won't deploy as my.jar isn't deploy dependency
// webModule("my.war", "/") // won't deploy as my.war isn't deploy dependency
securityRole "admin"
securityRole "superadmin"
withXml { provider -> // add a custom node to the XML
provider.asNode().appendNode("data-source", "my/data/source")
}
}
}
configurations {
moreLibs
}
repositories {
flatDir { dirs "lib" }
mavenCentral()
}
dependencies {
compile module(":compile:1.0") {
dependency ":compile-transitive-1.0@jar"
dependency ":providedCompile-transitive:1.0@jar"
}
providedCompile "javax.servlet:servlet-api:2.5"
providedCompile module(":providedCompile:1.0") {
dependency ":providedCompile-transitive:1.0@jar"
}
runtime ":runtime:1.0"
providedRuntime ":providedRuntime:1.0@jar"
testCompile "junit:junit:4.12"
moreLibs ":otherLib:1.0"
}
war {
from 'src/rootContent' // adds a file-set to the root of the archive
webInf { from 'src/additionalWebInf' } // adds a file-set to the WEB-INF dir.
classpath fileTree('additionalLibs') // adds a file-set to the WEB-INF/lib dir.
classpath configurations.moreLibs // adds a configuration to the WEB-INF/lib dir.
webXml = file('src/someWeb.xml') // copies a file to WEB-INF/web.xml
}
关于java - 从单个项目或源中生成不同的 gradle 工件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36023353/
最近,我一直在尝试清理我的openGl渲染。我已经有一段时间了,但是从来没有真正考虑过。这是一个屏幕截图: 经过一些研究,我一直无法弄清楚它到底出了什么问题。我在OSX上使用OpenGl,但在其他系统
我尝试使用 glDrawArray 和 GL_TRIANGLE_STRIP 渲染纹理网格,但绘制时存在伪影,但在屏幕上分布不均匀。 Screenshot of the problem. 这是我使用的代
尝试使用 Github 的 beta 操作,我有两项工作,一项负责构建代码,另一项负责部署代码。但是,我似乎无法在部署作业中获取构建工件。 我最新的尝试是为每个作业手动设置具有相同卷的容器镜像,根据文
我是 Azure DevOps(托管代理)新手,正在尝试使用 Azure Pipelines 通过 Ant 构建我的 Java Web 应用程序 下面是管道文件 trigger: - azure-pi
我最近重新配置了 TeamCity 构建配置,以利用分支功能将相同的构建配置应用于同一存储库中的多个分支。 现在,我正在尝试设置一个自动构建脚本,该脚本可以从 TeamCity 中提取最新的工件,但仅
我通过 FFMPEG 和 OpenMAX 使用硬件编码。 如果我使用 FFmpeg h264_omx 作为 VideoWriter 的后端,我会得到图像 like this .颜色显然有点混合。 其他
我有一个 iPhone 应用程序,它有一个基于 TableView 的数据输入屏幕,带有一个切换开关,打开时会显示表格另一部分中的所有行。 有时,当应用程序首次加载时,通常是当它从手机中完全删除时,除
我在每次构建结束时归档工件。我有 https://wiki.jenkins-ci.org/display/JENKINS/Archived+Artifact+Url+Viewer+PlugIn安装。
我在 vsreport 虚拟模式下使用 ListView ,有两列,在填充列表后,选择一行,然后选择其他行,之前选择的行上留下了一个工件,请参见下图。如何解决这个问题? 这是我从数组获取数据的代码 p
我有一个巨大的遗留 EAR 项目。当前的构建过程使用 Ant,我正在尝试转换为 gradle。 旧的 Ant 构建使用单个源文件夹,所有内容都在其中(EJB 和 WAR 代码一起);然后 Ant 使用
我们有一个 ivy 存储库,我们使用 gradle 进行依赖管理和构建框架。当一个工件被确定为生产就绪时,我们不想再次构建它,所以我们只想通过一个利用 Gradle 和工具 API 来完成大部分工作的
我有一个 gradle 构建,它必须将预构建的 jar 文件发布为工件。由于某种原因,它没有被拾取。这是重现它的简化版本: 文件夹内容: settings.gradle build.gradle so
是否有人编写过一个查询来同时监视所有 BizTalk 工件。 我的查询不起作用,而且我似乎无法完成它: 这是我的: select RL.Name AS rlName , ('Url:
我最近学习了如何使用 grailsApplication.addArtefact(java.lang.String artefactType, GrailsClass artefactGrailsCl
我想在 Bamboo 构建结束时运行内联脚本任务,以将一些工件复制到网络共享。请问如何在此脚本中引用工件输出目录? Windows 环境(如果这有影响的话)。 最佳答案 您需要configure Ar
我想要一个工件名称,例如game-1.0.%BuilNumber%.jar 其中 BuildNumber 是 teamcity 构建的编号。 我正在使用 gradle 来构建工件。使用该工具是否可行,
在 SBT 中,如果我有一个任务要生成包含一堆文件的 zip/jar/war,我会使用 Defaults.packageTaskSettings 方法来设置该任务。它看起来如下: object Bui
我一直在使用 TeamCity 来启动和运行 CI 环境。 我开始关注 Troy Hunt 的 'You're deploying wrong' ,这非常有用,但是我想将打包和部署分成 2 个单独的步
故事 我已经在 OpenGL 中编码大约一年了(在相同的硬件上),我最近才得到像上图中那样的工件。它们在短时间内(几分钟)连续运行我的程序后出现,并出现在任何地方:从写字板(见图片)到我的桌面和任务栏
我使用以下代码在代码中创建了一个 UITableView: // no xib tableView = new UITableView( new RectangleF(0,0, this.View.F
我是一名优秀的程序员,十分优秀!