突然发现现在的OWASPWebScarab在引入OpenID相关的模块后,很多所依赖的包都没有包含在下载的源代码里面,导致编译有些问题。研究了一下之后把目前的编译过程记录下来。另外WebScarab支持MAVEN和ANT两种编译方式,MAVEN的编译表示毫无鸭梨。但是MAVEN的缺点是必须要能够连接到internet去自动下载依赖的包,这让我很不爽,因为我的很多环境是无法连上internet的,所以还是采用ANT的办法编译,手工下载依赖的包以及设置好编译环境。
下载源代码:
直接通过IE下载最新的snapshot:
http://dawes.za.net/gitweb.cgi?p=webscarab.git;a=tree
编译环境:
我这里使用JDK1.6和ANT1.8进行编译。
编译依赖项:
编译依赖项实际上是反复执行编译命令然后看报的错误逐步试验出来的。实际上大部分所以依赖的JAVA类库都可以在下载下来的源代码的lib目录下找到相应的JAR文件。目前发现如下列出的类库缺少:
One-JAR ——这个库用于把JAVA程序及其依赖的JAR文件一起打包成一个独立可执行的JAR文件。其官方网站为:http://one-jar.sourceforge.net/。
Bouncycastle ——这是一个基于JAVA的用于加密和编码的轻量级的API。其官方网站的地址为:http://www.bouncycastle.org/
Xalan-Java ——这是Apache基金会下面的一个项目,基于JAVA的XSLT处理器。其官方网站的地址为:http://xml.apache.org/xalan-j/
OpenID4JAVA ——这是JAVA应用程序的OpenID接口,其官方网站的地址为:http://code.google.com/p/openid4java/
Joda Time ——这个库提供了一组Java类用于处理包括ISO8601标准在内的时间和日期。其官方网站地址为:http://joda-time.sourceforge.net/
将上面列表里面提到的库最新版本都下载下来,把相应的JAR文件放到WebScarab源代码的lib目录下面以备后用。
修改ANT脚本文件:
主要是把我们自己下载的这些JAVA库添加ANT编译时的类库路经里面去。
首先是One-JAR的路径,修改one-jar.ant.jar这个属性的值,指向One-JAR库的路径:
<propertyname="one-jar.ant.jar" value="lib/one-jar-ant-task-0.97.jar" />
然后是其他的依赖项,在ANT脚本文件的<path>节点中为Bouncycastle 、 Xalan-Java、 OpenID4JAVA与Joda Time 添加<pathelement>子节点至相应的JAR文件位置。
执行编译:
运行命令如下命令完成编译:
ant one-jar
编译好的WebScarab的One-JAR文件可以在dist 目录下面找到,直接使用如下命令即可运行:
java -jar ./webscarab-one-[numbers].jar