尝试使用Weblogic 10.3依赖项进行Ant构建
我是一名CM,负责我们的持续构建过程,并帮助开发人员正确定义和使用构建。我试图以这样一种方式进行设置,即开发人员只需从源代码控制系统下载模块,然后键入尝试使用Weblogic 10.3依赖项进行Ant构建,ant,build,ivy,weblogic-10.x,weblogic11g,Ant,Build,Ivy,Weblogic 10.x,Weblogic11g,我是一名CM,负责我们的持续构建过程,并帮助开发人员正确定义和使用构建。我试图以这样一种方式进行设置,即开发人员只需从源代码控制系统下载模块,然后键入ant或maven,然后一切正常 在Ant项目中,我要么使用ivy,要么有一个lib目录,其中包含所需的第三方jar文件。这有助于我清楚地定义所有依赖项,并使开发人员能够轻松地在他们的系统上构建模块。是的,有一些依赖于正确的JDK版本,也有一些依赖于正确的Ant版本,但即使是这些版本也有点灵活。此外,Ecipse和Jenkins/Hudson允许您
ant
或maven
,然后一切正常
在Ant项目中,我要么使用ivy
,要么有一个lib
目录,其中包含所需的第三方jar文件。这有助于我清楚地定义所有依赖项,并使开发人员能够轻松地在他们的系统上构建模块。是的,有一些依赖于正确的JDK版本,也有一些依赖于正确的Ant版本,但即使是这些版本也有点灵活。此外,Ecipse和Jenkins/Hudson允许您定义想要使用的确切JDK和Ant版本
问题在于这个项目依赖于WebLogic10.3(又名11g)。在WebLogic10之前,您几乎可以只使用Weblogic.jar文件,或者使用一个或两个其他jar。从Weblogic 10开始,JAR现在已经“模块化”
当我进行构建时,我仍然只是在类路径中包含weblogic.jar
。但是,weblogic.jar
在其MANIFEST.MF
文件中包含对。\..\..\modules\features
目录(实际上是包含weblogic 10.3的父目录!)的引用。这里是不包含类路径的JAR,但它们自己在MANIFEST.MF
中嵌入了一个指向其他JAR的类路径。这些反过来可以参考其他罐子
我想我有以下选择之一:
更新 正如其他人所指出的,我可以尝试找到各种JAR,我使用WebLogic9.x和早期版本就做到了这一点。例如,一个简单的shell脚本:
find $WEBLOGIC_HOME -name "*.jar" | while read jar
do
echo "JAR NAME = jar"
jar tvf $jar
done | less
将在我的终端上显示所有Weblogic JAR的内容。如果我在一个构建中发现javax.servlet.ServletException
类丢失,我可以搜索javax\servlet\ServletException.class
,然后返回搜索JAR NAME=
并找到JAR的名称
然而,在Weblogic 10中,我发现我依赖于javax.servlet.ServletException
,并将其追溯到C:\bea\modules\javax.servlet\u 1.0.0.0.jar
,它甚至不在我的$Weblogic\u HOME
目录中。这是因为C:\bea\wlserver\u 10.3\server\lib\weblogic.jar
包含到。\..\..\modules\features\somejar.jar
的类路径。而且somejar.jar
不包含任何类。相反,它在其类路径中包含对另一个jar的引用,然后引用javax.servlet_1.0.0.0.jar
因此,我现在必须再添加四个JAR,其中一个不包含任何类,如果我想模拟Weblogic的结构,我必须在我的lib
目录中包含以下文件:
weblogic.lib\wlserver\u 10.3\server\lib\weblogic.jar
weblogic.lib\modules\features\somejar.jar
weblogic.lib\modules\someOtherJar.jar
weblogic.lib\modules\javax.servlet\u 1.0.0.0.jar
有没有人知道一些文档可以让我快速确定这些依赖关系存在的位置,或者一种构建依赖关系树的方法,这样当我需要classpath com.bea.weblogic.foo.bar.barfoo时,我可以快速看到我需要这些7或8个jar?我想你不需要整个700MB包来构建。因此,您可以(是的,这是需要做的一些工作)构建自己的“weblogic ivy”文件,该文件描述了用于构建和测试的mininmal jar集。
将该文件发布到您的公司repo,并在依赖项配置中使用它,您和您的开发人员只需使用最小配置即可,该配置不应比其他应用服务器客户端软件包大多少。我放弃了。我只是简单地安装了Weblogic 10,并在我的
build.xml
中检查设置了$Weblogic\u HOME
。我们对构建使用了概念上类似的方法(减去源代码库中的常春藤罐子),效果很好。你只需要努力确定需要哪些罐子。我敢打赌,它将是主weblogic.jar文件之上的一个非常小的子集。当然,您需要实际安装来运行单元测试,但是能够在不安装WLS的情况下进行构建仍然很有用。对于WebLogic9.x,它是Weblogic.jar,可能还有两三个。我可以通过一点侦查很容易地找到答案。然而,事实证明,这要复杂得多。