Jenkins Ant构建失败“src不存在!”

时间:2016-10-13 14:13:58

标签: java jenkins ant

当我在控制台中运行我的代码时,它运行正常。它也可以在日食上运行良好。但是当我尝试在Jenkins上构建时,它需要一个src文件夹:

  

“C:\ Program Files(x86)\ Jenkins \ Work space \ job1 \ src”不存在!

的build.xml

<project name="Sample Ant build" basedir=".">
<!-- ========== Initialize Properties =================================== -->
<!-- set global properties for build -->
<property name="basedir" value="." />
<property name="lib" value="${basedir}/lib" />
<property name="src" value="${basedir}/src" />
<property name="bin" value="${basedir}/bin" />
<property name="report-dir" value="${basedir}/Test-Report" />
<property name="testng-report-dir" value="${report-dir}/TestNGreport" />

<!-- ====== Set the classpath ====  -->
<path id="classpath">
    <pathelement location="${bin}" />
    <fileset dir="C:\WebDriver\Selenium">
        <include name="*.jar" />
    </fileset>
</path>

<!-- Delete directories  -->
<target name="delete-dir">
    <delete dir="${bin}" />
    <delete dir="${report-dir}" />
</target>

<!-- Creating directories -->
<target name="create" depends="delete-dir">
    <mkdir dir="${bin}" />
    <mkdir dir="${report-dir}" />
</target>

<!-- Compile the java code from ${src} into ${bin} -->
<target name="compile" depends="create">
    <javac srcdir="${src}" classpathref="classpath" includeAntRuntime="No" destdir="${bin}" />
    <echo> /* Compiled Directory Classes */ </echo>
</target>

<!-- Runs the file and generates Reportng report for TestNG-->
<taskdef name="testng" classname="org.testng.TestNGAntTask" classpathref="classpath" />

<target name="testng-execution" depends="compile">
    <mkdir dir="${testng-report-dir}" />
    <testng outputdir="${testng-report-dir}" classpathref="classpath" useDefaultListeners="true">
        <xmlfileset dir="${basedir}" includes="testng.xml" />
    </testng>
</target>

1 个答案:

答案 0 :(得分:0)

Eclipse使用工作空间,Jenkins使用工作空间(在我们的例子中,TFS也使用工作空间)。它们不是同一件事。 (您的查询缺少一些权威性回答的细节,有些假设已经做出)

您的build.xml脚本将BASEDIR设置为“。”或工作目录。对于Jenkins的工作,如下所示 - 请参阅Administering Jenkins

JENKINS_HOME
+- workspace (working directory for the version control system)
 +- [JOBNAME] (sub directory for each job)

在您的情况下,JENKINS_HOME\workspace\[JOBNAME]C:\Program Files (x86)\Jenkins\Work space\job1

我的钱不是你的Eclipse工作区映射到的地方。

我会提出以下建议:

  • 开发代码并在Eclipse IDE中对其进行测试。如果满意,请提交您的版本控制系统(VCS)。

  • 设置Jenkins将代码从VCS中提取到作业的本地工作区并在那里构建。由于它与您的工作副本是分开的,因此它有助于隔离更改并确保您已将所有内容提交到源代码控制,因此您的构建来自一个可知的,可重现的源。

    • 将JEKNINS_HOME设置为C:\Program Files ...以外的位置;将数据(如源文件和构建版本)放置在安装二进制文件的某个位置是不好的做法。很多商品的理由,包括安全性,更容易的空间管理等。

    • 选择合适的位置并设置主服务器的目录配置(Jenkins |管理Jenkins |配置系统;前3个值)

    • 如果在您的节点配置(Jenkins |管理Jenkins |管理节点| Configure =&gt;远程根目录)中使用distributed builds(主/节点)到适当的位置