源码编译 Cas Server 4/5/6/7

1、下载源码

wget -O cas-7.1.3.zip "https://codeload.github.com/apereo/cas/zip/refs/tags/v7.1.3"
# wget -O cas-6.6.15.zip "https://codeload.github.com/apereo/cas/zip/refs/tags/v6.6.15"
# wget -O cas-5.3.16.zip "https://codeload.github.com/apereo/cas/zip/refs/tags/v5.3.16"
unzip cas-7.1.3.zip

2、修改 gradle 下载地址

  • 对于 cas 5、6、7
vim gradle/wrapper/gradle-wrapper.properties

将 distributionUrl 修改为腾讯云的源,只改前面的下载地址部分
在这里插入图片描述

distributionUrl=https\://mirrors.cloud.tencent.com/gradle/gradle-8.10-bin.zip

3、指定 JDK 版本

cas版本jdk版本gradle 版本
7.1.3jdk 218.10
6.6.15大于等于 jdk 117.5.1
5.3.16jdk 1.84.8

4、Gradle 配置仓库下载加速和依赖配置

4.1、CAS Server 7.1.3 和 6.6.15

修改根目录下的 build.gradle 文件,对于 7.1.3 和 6.6.15 修改为以下配置

repositories {
    gradlePluginPortal()
    mavenLocal()
    maven { url 'https://maven.aliyun.com/repository/public/' }
    maven { url 'https://maven.aliyun.com/repository/jcenter' }
    maven { url 'https://maven.aliyun.com/repository/gradle-plugin' }
    maven { url 'https://maven.aliyun.com/repository/spring-plugin' }
    maven { url 'https://maven.scijava.org/content/repositories/public/' }
    maven { url "https://plugins.gradle.org/m2/" }  // 备用仓库
    maven { url "https://repo.spring.io/plugins-release" }  // 备用仓库
}

如果提示下载 com.github.mmoayyed.ws-wss4j 依赖失败,可以去:https://maven.scijava.org/content/repositories/public/com/github/mmoayyed/ws-wss4j/ 下载
在这里插入图片描述

修改根目录下的 settings.gradle
将 https://jitpack.io 修改成 https://maven.scijava.org/content/repositories/public
在这里插入图片描述
修改后
在这里插入图片描述

4.2、CAS Server 5.3.16

4.2.1、根目录 build.gradle

对于 5.3.16 的 build.gradle 修改以下配置
注释掉 20~23行
在这里插入图片描述
并手动指定版本号

ext {
    publishSnapshots = Boolean.getBoolean("publishSnapshots")
    publishReleases = Boolean.getBoolean("publishReleases")
    sonatypeUsername = System.getProperty("sonatypeUsername")
    sonatypePassword = System.getProperty("sonatypePassword")
    testCategoryType = System.getProperty("testCategoryType")
    forceBom = Boolean.getBoolean("forceBom")
    enableRemoteDebugging = Boolean.getBoolean("enableRemoteDebugging")
    continuousIntegrationBuild = Boolean.getBoolean("CI") || Boolean.getBoolean("TRAVIS") || Boolean.getBoolean("CONTINUOUS_INTEGRATION")

    publishingRelease = publishReleases && rootProject.sonatypeUsername != null && rootProject.sonatypePassword != null
    /*
    Open the Git repository in the current directory.
    Get commit id of HEAD.
     */
    //git = org.ajoberstar.grgit.Grgit.open(dir: file('.').canonicalPath)
    //def gitHead = git.head()
    //currentRevision = gitHead.id
    //currentAbbreviatedRevision = gitHead.abbreviatedId
    currentRevision = "5.3.16" 
    currentAbbreviatedRevision = "5.3.16"
}

在这里插入图片描述

buildscript.repositories 修改为以下配置

repositories {
    mavenLocal()
    maven { url 'https://maven.aliyun.com/repository/public/' }
    maven { url 'https://maven.aliyun.com/repository/jcenter' }
    maven { url 'https://maven.aliyun.com/repository/gradle-plugin' }
    maven { url 'https://maven.aliyun.com/repository/spring-plugin' }
    maven { url "https://plugins.gradle.org/m2/" }  // 备用仓库
    maven { url "https://repo.spring.io/plugins-release" }  // 备用仓库
}

allprojects.repositories 修改为以下配置

repositories {
    mavenLocal()
    maven { url 'https://maven.aliyun.com/repository/public/' }
    maven { url 'https://maven.aliyun.com/repository/jcenter' }
    maven { url 'https://maven.aliyun.com/repository/gradle-plugin' }
    maven { url 'https://maven.aliyun.com/repository/spring-plugin' }
    maven { url "https://plugins.gradle.org/m2/" }  // 备用仓库
    maven { url "https://repo.spring.io/plugins-release" }  // 备用仓库
}

4.2.2、编译 cas-server-webapp 报错

在这里插入图片描述

修改文件 webapp/gradle/webapp.gradle,指定本地 node

cd /usr/local
wget -O node-v8.11.2-linux-x64.tar.gz https://nodejs.org/dist/v8.11.2/node-v8.11.2-linux-x64.tar.gz
tar -zxvf node-v8.11.2-linux-x64.tar.gz
vim /etc/profile
#Node
export NODE_HOME=/usr/local/node-v8.11.2-linux-x64
export PATH=$NODE_HOME/bin:$PATH
source /etc/profile
node -v
npm -v
#在Jenkins构建脚本的npm install命令前加入以下配置,允许以root身份执行安装
npm config set user 0
npm config set unsafe-perm true

在这里插入图片描述

node {
    version = "${nodeVersion}"
    nodeModulesDir = project(":webapp").projectDir
    download = false  // 禁用自动下载
    workDir = file("/usr/local/node-v8.11.2-linux-x64")
}

4.2.4、编译 cas-server-support-duo 或者 cas-server-support-duo-core 报错

在这里插入图片描述

wget -O duo_client_java-0.2.2.zip https://codeload.github.com/duosecurity/duo_client_java/zip/refs/tags/0.2.2
unzip duo_client_java-0.2.2.zip
cd duo_client_java-0.2.2/duo-client
vim pom.xml

注掉旧的工件和组

<!--  <groupId>com.duosecurity</groupId>-->
<!--  <artifactId>duo-client</artifactId>-->
<!--  <version>0.2.1</version>-->
<groupId>net.unicon.iam</groupId>
<artifactId>duo-client</artifactId>
<version>0.2.2</version>

在这里插入图片描述

cd duo_client_java-0.2.2/duo-client
mvn clean install -U -D maven.test.skip=true -D maven.javadoc.skip=true
mvn install:install-file -Dfile=duo_client_java-0.2.2/duo-client/target/duo-client-0.2.2.jar -DgroupId=net.unicon.iam -DartifactId=duo-client -Dversion=0.2.2 -Dpackaging=jar

5、Cas Server 5/6/7 编译命令

# 清除缓存
rm -rf ~/.gradle/caches/
# 停止历史的gradlew进程
./gradlew --stop
# 进入目录
cd cas-7.1.3
# 设置JAVA_HOME
export JAVA_HOME="/usr/local/jdk-21.0.5"
# 查看gradle版本和jdk版本
./gradlew --version -Dorg.gradle.java.home=/usr/local/jdk-21.0.5
# 下载所有依赖
./gradlew --refresh-dependencies dependencies -Dorg.gradle.java.home=/usr/local/jdk-21.0.5
# cas7.1.3编译命令
./gradlew clean build --parallel -x test -x javadoc -x check --build-cache --no-daemon -Dorg.gradle.java.home=/usr/local/jdk-21.0.5
unset JAVA_HOME

在这里插入图片描述

构建成功后,war 文件在 webapp/cas-server-webapp/build/libs 目录下

ll webapp/cas-server-webapp/build/libs

在这里插入图片描述

6、源码编译 Cas Server 4

由于 Cas Server 4 使用的是 maven,这里单独篇幅介绍

6.1、下载源码

wget -O cas-4.1.10.zip "https://codeload.github.com/apereo/cas/zip/refs/tags/v4.1.10"
unzip cas-4.1.10.zip

6.2、maven 和 jdk 版本

依赖版本
jdk1.8
maven3.5.3

一些依赖报错,则需要手动安装依赖

  • org.restlet-2.1.0.jar
wget https://maven.restlet.talend.com/org/restlet/jee/org.restlet/2.1.0/org.restlet-2.1.0.jar
mvn install:install-file -Dfile=org.restlet-2.1.0.jar -DgroupId=org.restlet.jee -DartifactId=org.restlet -Dversion=2.1.0 -Dpackaging=jar
  • jcifs-ext-0.9.4.jar
wget https://gitee.com/wxhntmy/jcifs-ext-0.9.4/raw/master/jcifs-ext-0.9.4.jar
mvn install:install-file -Dfile=jcifs-ext-0.9.4.jar -DgroupId=org.samba.jcifs -DartifactId=jcifs-ext -Dversion=0.9.4 -Dpackaging=jar
  • Could not find artifact com.hazelcast:hazelcast-code-generator:jar:4.1.10
    修改 cas-4.1.10/cas-server-integration-hazelcast/pom.xml 文件,指定 hazelcast 版本
<dependency>
    <groupId>com.hazelcast</groupId>
    <artifactId>hazelcast</artifactId>       
    <version>3.5</version>     
</dependency>
<dependency>
    <groupId>com.hazelcast</groupId>
    <artifactId>hazelcast-code-generator</artifactId>       
    <version>3.5</version>     
</dependency>

在这里插入图片描述

6.3、编译命令

cd cas-4.1.10
export JAVA_HOME="/usr/local/jdk1.8.0_202"
/usr/local/apache-maven-3.5.3/bin/mvn clean install -U -D maven.test.skip=true -D maven.javadoc.skip=true
unset JAVA_HOME

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

菠萝蚊鸭

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值