WAR 覆盖安装

CAS安装从根本上来说是一个面向源码的过程,我们推荐一个WAR overlay(1)项目来组织组件配置和UI设计等定制。WAR 覆盖构建的输出是一个cas.war可以部署到 servlet 容器(如Apache Tomcat )的文件。

什么是 WAR 叠加层?

覆盖是一种对抗重复代码和/或资源的策略。与下载 CAS 代码库和从源代码构建不同,overlays 允许您下载项目本身提供的预构建的 vanilla CAS Web 应用程序服务器,并覆盖/插入特定行为。在构建时,构建安装过程将首先尝试下载提供的二进制工件。然后该工具将找到您在同一项目目录中提供的配置文件和设置,并将它们合并到下载的工件中以生成一个完整的存档(即cas.war)。覆盖的工件可能包括资源、java 类、图像、CSS 和 javascript 文件。为了成功执行合并过程,必须在本地覆盖工件的位置和名称与最初下载的存档中项目提供的那些完全匹配。overlay 项目文件夹中的 Java 代码src/main/java 和资源src/main/resources将最终位于WEB-INF\classes cas.war 文件夹中,它们将由类加载器加载,而不是内部 jar 文件中的同名资源WEB-INF\lib。

毋庸置疑,虽然前期的启动时间可能会稍微复杂一些,但这种方法有显着的优势:

  1. 无需从源代码下载/构建。
  2. 在大多数情况下,通过调整构建脚本以下载更新的 CAS 版本,升级会变得非常容易。
  3. 作为部署者,您不必托管整个软件源代码,而只需保留自己的本地自定义项,这样可以更轻松地跟踪更改。
  4. 跟踪源代码控制存储库中的更改是非常轻量级的,同样是因为只管理相关更改(而不是整个软件)。

管理覆盖

CAS 的大部分(如果不是全部)方面都可以通过添加、删除或修改叠加层中的文件来控制;通过添加将 CAS API 实现为 Java 源文件或依赖项引用的第三方组件来自定义 CAS 的行为也是可能的,而且确实很常见。

使用叠加层的过程可以概括为以下步骤:

  1. 开始并构建提供的基本香草构建/部署。
  2. 从生成的构建中识别需要更改的工件。这些工件通常由buildGradle 目录中的构建生成。使用渐变unzip任务。
  3. 将识别出的工件从上面识别出的目录复制到src/main/resources目录中。
  4. 创建src/main/resources目录(如果它们尚不存在)。
  5. 复制的路径和文件名必须与它们的构建副本完全匹配,否则更改不会生效。请参阅下表以了解如何将文件夹和文件从构建映射到src.
  6. 更改后,重建并尽可能多次重复该过程。
  7. 仔细检查构建的二进制工件中的更改,以确保覆盖过程正常运行。
作者:Jeebiz  创建时间:2023-01-19 13:33
最后编辑:Jeebiz  更新时间:2024-05-06 16:13