【问题标题】:How to build a Selenium Web Driver java application using Ant (outside Eclipse ...)?如何使用 Ant(Eclipse 外部 ...)构建 Selenium Web Driver java 应用程序?
【发布时间】:2015-10-10 14:37:01
【问题描述】:

首先......我是 Apache Ant 的新手。

我正在尝试将它用于使用 Selenium Web 驱动程序库构建一个简单的 java 应用程序。

我从教程:Hello World with Apache Ant(参考http://ant.apache.org/manual/index.html)开始构建一个简单的“Hello world”,它还解释了如何使用外部库(在示例中是 log4J 库...)。

一切正常。然后我尝试使用 Selenium Web 驱动程序库将我的第一个构建文件更改为在我的 java 应用程序中进行适配。

这里是我的目录组织 ....

我的 java 源代码位于磁盘的另一个目录中,但这不是问题所在(我认为...)

在 lib 目录下,我有 selenium-java-2.46.0.jar,在 libs 子目录下,我有所有其他 selenium 库,所以...

(请注意,这不是所有库的完整列表......这只是为了解释我的文件组织......)。

这是我的 build.xml 文件...

<project name="Bdo" basedir="." default="main">

<property name="src.dir"     value="D:/Cesare/Lavoro/WorkspaceEclipse/TestSelenium/TestSeleniumProgetti/src/myProjects"/>
<property name="build.dir"   value="Bdo"/>
<property name="classes.dir" value="${build.dir}/classes"/>
<property name="jar.dir"     value="${build.dir}/jar"/>
<property name="main-class"  value="myProjects.bdoTest_01"/>
<property name="lib.dir" value="lib"/>

<path id="classpath">
    <fileset dir="${lib.dir}" includes="**/*.jar"/>
</path>

<target name="clean">
    <delete dir="${build.dir}"/>
</target>

<target name="compile">
    <mkdir dir="${classes.dir}"/>
    <javac srcdir="${src.dir}" destdir="${classes.dir}" classpathref="classpath"/>
</target>

<target name="jar" depends="compile">
    <mkdir dir="${jar.dir}"/>
    <jar destfile="${jar.dir}/${ant.project.name}.jar" basedir="${classes.dir}">
        <manifest>
            <attribute name="Class-Path" value="../../${lib.dir}/selenium-java-2.46.0.jar ../../${lib.dir}/libs/apache-mime4j-0.6.jar ../../${lib.dir}/libs/bsh-1.3.0.jar ../../${lib.dir}/cglib-nodep-2.1_3.jar ../../${lib.dir}/libs/commons-codec-1.10.jar  ../../${lib.dir}/libs/commons-collections-3.2.1.jar ../../${lib.dir}/commons-exec-1.3.jar ../../${lib.dir}/commons-io-2.4.jar ../../${lib.dir}/libs/commons-lang3-3.4.jar  ../../${lib.dir}/libs/commons-logging-1.1.3.jar ../../${lib.dir}/cssparser-0.9.16.jar ../../${lib.dir}/gson-2.3.1.jar ../../${lib.dir}/libs/guava-18.0.jar  ../../${lib.dir}/libs/hamcrest-core-1.3.jar ../../${lib.dir}/hamcrest-library-1.3.jar ../../${lib.dir}/htmlunit-2.17.jar ../../${lib.dir}/libs/htmlunit-core-js-2.17.jar  ../../${lib.dir}/libs/httpclient-4.4.1.jar ../../${lib.dir}/httpcore-4.4.1.jar ../../${lib.dir}/httpmime-4.4.1.jar ../../${lib.dir}/libs/jcommander-1.29.jar  ../../${lib.dir}/libs/jetty-io-9.2.11.v20150529.jar ../../${lib.dir}/jetty-util-9.2.11.v20150529.jar ../../${lib.dir}/jna-4.1.0.jar ../../${lib.dir}/libs/jna-platform-4.1.0.jar  ../../${lib.dir}/libs/junit-dep-4.11.jar ../../${lib.dir}/nekohtml-1.9.22.jar ../../${lib.dir}/netty-3.5.7.Final.jar ../../${lib.dir}/libs/phantomjsdriver-1.2.1.jar  ../../${lib.dir}/libs/sac-1.3.jar ../../${lib.dir}/serializer-2.7.2.jar ../../${lib.dir}/testng-6.8.5.jar ../../${lib.dir}/libs/websocket-api-9.2.11.v20150529.jar  ../../${lib.dir}/libs/websocket-client-9.2.11.v20150529.jar ../../${lib.dir}/websocket-common-9.2.11.v20150529.jar ../../${lib.dir}/xalan-2.7.2.jar ../../${lib.dir}/libs/xercesImpl-2.11.0.jar  ../../${lib.dir}/libs/xml-apis-1.4.01.jar "/>            
            <attribute name="Main-Class" value="${main-class}"/>
        </manifest>
    </jar>
</target>

<target name="run" depends="jar">
    <java fork="true" classname="${main-class}">
        <classpath>
            <path refid="classpath"/>
            <path location="${jar.dir}/${ant.project.name}.jar"/>
        </classpath>
    </java>
</target>

<target name="clean-build" depends="clean,jar"/>

<target name="main" depends="clean,run"/>

当我执行命令时

ant run

一切正常,我可以看到我的应用程序正在运行......

当我尝试使用命令执行 jar 时

java -jar Bdo.jar

我有以下错误

我认为 ClassPath 出了点问题,但似乎所有库路径都正常....

有什么建议吗?

提前非常感谢您!!!

切萨雷

【问题讨论】:

    标签: java selenium ant build


    【解决方案1】:

    类路径中的某些路径不包含 libs 目录。 gson-2.3.1.jar 就是这样一种路径。

    【讨论】:

    • @Cesare 我们都制作了它们,我制作了很多,所以我很快就认出了它。既然它回答了你的问题,你会接受我的回答吗?谢谢!
    猜你喜欢
    • 2011-01-28
    • 2017-12-17
    • 1970-01-01
    • 2012-02-24
    • 2014-01-07
    • 2011-05-15
    • 2011-05-12
    • 1970-01-01
    • 2012-03-17
    相关资源
    最近更新 更多