gpt4 book ai didi

java - 在没有 Tomcat 或 Apache(独立服务)的情况下使用 Borlands StarTeam 在 Linux 中配置 Jenkins

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:09:11 27 4
gpt4 key购买 nike

我已经通读了 jenkins 页面上的文档以及其他一些留言板,他们似乎都提供了使用 Tomcat (ewwww) 的教程!!!。出于可维护性的原因,我的任务是将 Jenkins 作为独立服务提供。到目前为止,我已经设置了 HUDSONHOME、CLASSPATH 和 JAVA_HOME。我的java版本是

java version "1.6.0_20"
OpenJDK Runtime Environment (IcedTea6 1.9.7) (rhel-1.39.1.9.7.el6-x86_64)
OpenJDK 64-Bit Server VM (build 19.0-b09, mixed mode)

我在/etc/profile.d 中有一个脚本执行以下操作:

JAVA_HOME=/usr/java;
JRE_HOME=/usr/java/jre/bin;
if [ "${CLASSPATH}" == "" ]; then
CLASSPATH=/var/lib/jenkins/war/WEB-INF;
HUDSON_HOME=/var/lib/jenkins/war/WEB-INF;
else
CLASSPATH=${CLASSPATH}:/var/lib/jenkins/war/WEB-INF;
HUDSON_HOME=/var/lib/jenkins/war/WEB-INF;
fi
PATH=${PATH}:${JAVA_HOME}/bin:/opt/StarTeamCP_2009/bin:/opt/QtSDK/Desktop/Qt/474/gcc/bin:/opt/QtSDK/QtCreator/bin/:${CLASSPATH}:${HUDSON_HOME};
export JAVA_HOME;
export PATH;
export CLASPATH;

查看/etc/passwd,Jenkins 默认 shell 是 bash,因此不需要脚本的 csh 版本。作为用户,我可以登录,因为所有变量都已正确设置。我从他们的主页安装了 Jenkins RPM RPM link .

我从 Jenkins 输出窗口得到的错误是:

FATAL: com/starbase/starteam/Folder
java.lang.NoClassDefFoundError: com/starbase/starteam/Folder
at hudson.plugins.starteam.StarTeamSCM.checkout(StarTeamSCM.java:127)
at hudson.model.AbstractProject.checkout(AbstractProject.java:1195)
at hudson.model.AbstractBuild$AbstractRunner.checkout(AbstractBuild.java:576)
at hudson.model.AbstractBuild$AbstractRunner.run(AbstractBuild.java:465)
at hudson.model.Run.run(Run.java:1404)
at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:46)
at hudson.model.ResourceController.execute(ResourceController.java:88)
at hudson.model.Executor.run(Executor.java:238)
Caused by: java.lang.ClassNotFoundException: com.starbase.starteam.Folder
at java.net.URLClassLoader$1.run(URLClassLoader.java:217)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:205)
at java.lang.ClassLoader.loadClass(ClassLoader.java:321)
at java.lang.ClassLoader.loadClass(ClassLoader.java:266)
... 8 more

我错过了什么?


As for your "class not found" exception, you're pulling in libraries that aren't part of Tomcat or Jenkins, and they apparently depend on items that are also not in Tomcat or Jenkins. This leads to the question, "Why are you populating your environment with borland libraries if you want to run a non-borland application?"

为此,我将 Starteam 插件用作 Jenkins 的一部分。 Jenkins 需要知道 Borlands .jar 文件中包含的 StarTeam 类的定义。

最佳答案

--- 为响应更新而编辑---

好的,您需要 Jenkins 插件的明星团队库。这就明白了。感谢您的澄清。

由于您使用的是 Jenkins 的 RPM 版本,因此您使用的是 Tomcat(它是一个依赖项)。将来是否尝试在没有 Tomcat 的情况下运行 Jenkins(以及如何操作)是您的最终选择;但是,您可能会发现 Tomcat 增加的值(value)比您想象的要多得多。

您当前遇到的问题与 Tomcat 强制执行安全类加载有关。您不能假定 Tomcat 的 CLASSPATH 条目可用于内部 Web 应用程序。这是有充分理由的。

由于 Tomcat 区分了两者(容器/应用程序),因此应用程序可以相互独立地选择它们需要的内容。好的一面是应用程序不必重写或调整即可使用相同版本的库(jar 文件)。不利的一面是类路径等需要在每个 webapp 的基础上进行配置。

我的猜测是 Jenkins 文档中某处提到在 $(webapps)/jenkins/WEB-INF/lib 某处的相关库中复制(或链接)的项目。也就是说,如果有任何 Jenkins-starteam 文档,我会首先引用它。

祝你好运。

--- 原帖如下---

Jenkens 是一个 Java 网络应用程序。 Tomcat 是一个 Java Web 服务器。在 Java Web 服务器之外运行 Java Web 应用程序将非常困难。

Web 服务器打开端口以接受 Web 请求,然后将这些请求的已处理表单路由到 Web 应用程序。通常不可能在独立模式下运行应用程序,因为 Web 应用程序对 HTTP 协议(protocol)、网络套接字、 session 跟踪、身份验证等细节知之甚少。

有时可以在应用程序中嵌入一个小型 Java Web 服务器(以提供快速部署);然而,这并不是一个真正“更受支持”的环境,因为第二个你需要在同一台机器上运行两个“项目”,你会遇到嵌入式配置争夺相同端口的问题。这涉及“解包”应用程序、进行内部更改以及重新打包。任何“更新”都将完全重置特定于站点的自定义设置。

关于 Tomcat 的唯一“ewwww”部分可能是您对它感到不舒服。没关系,每个人都是这样开始的。

至于您的“未找到类”异常,您正在引入不属于 Tomcat 或 Jenkins 的库,并且它们显然依赖于也不在 Tomcat 或 Jenkins 中的项目。这就引出了一个问题,“如果你想运行一个非 borland 应用程序,你为什么要用 borland 库填充你的环境?”

关于java - 在没有 Tomcat 或 Apache(独立服务)的情况下使用 Borlands StarTeam 在 Linux 中配置 Jenkins,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9009298/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com