如何使用 Ant(在 Eclipse 之外...)构建 Selenium Web Driver java 应用程序?
How to build a Selenium Web Driver java application using Ant (outside Eclipse ...)?
首先.....我是Apache Ant的新手。
我正在尝试使用它来构建一个使用 Selenium Web 驱动程序库的简单 java 应用程序。
我从教程:Hello World with Apache Ant(参考文献 http://ant.apache.org/manual/index.html)开始构建一个简单的 "Hello world",它还解释了如何使用外部库(在示例中为 log4J 库 . ..).
一切正常.. 然后我尝试更改我的第一个构建文件以在我的 java 应用程序中使用 Selenium Web Driver 库对其进行适配。
这是我的目录结构....
我的 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 出了点问题,但似乎所有的库路径都没有问题....
有什么建议吗?
非常感谢您!!!
切萨雷
类路径中的某些路径不包含 libs 目录。 gson-2.3.1.jar 就是这样一条路径。
首先.....我是Apache Ant的新手。
我正在尝试使用它来构建一个使用 Selenium Web 驱动程序库的简单 java 应用程序。
我从教程:Hello World with Apache Ant(参考文献 http://ant.apache.org/manual/index.html)开始构建一个简单的 "Hello world",它还解释了如何使用外部库(在示例中为 log4J 库 . ..).
一切正常.. 然后我尝试更改我的第一个构建文件以在我的 java 应用程序中使用 Selenium Web Driver 库对其进行适配。
这是我的目录结构....
我的 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 出了点问题,但似乎所有的库路径都没有问题....
有什么建议吗?
非常感谢您!!!
切萨雷
类路径中的某些路径不包含 libs 目录。 gson-2.3.1.jar 就是这样一条路径。