Jenkins Ant 构建失败"src does not exist!"



当我在控制台中运行代码时,它运行得很好。它在eclipse上也能很好地运行。但是当我尝试在Jenkins上构建时,它要求一个src文件夹:

"C:Program Files (x86)JenkinsWork spacejob1src"不存在!

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:WebDriverSelenium">
        <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>

Eclipse使用一个工作区,Jenkins使用一个工作区(在我们的例子中,TFS也使用一个工作区)。它们不是一回事。(你的问题缺少一些细节来权威性地回答,做了一些假设)

您的build.xml脚本将BASEDIR设置为".",或工作目录。对于Jenkins工作,如下所示-参见管理Jenkins:

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

在您的例子中,JENKINS_HOMEworkspace[JOBNAME]C:Program Files (x86)JenkinsWork spacejob1

我的钱是你的Eclipse工作空间不是映射到的。

我的建议如下:

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

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

    • 设置JEKNINS_HOME为C:Program Files ...之外的位置;将数据(如源文件和构建)放在安装二进制文件中的位置是不好的做法。很多货物这样做的原因,包括安全,更容易的空间管理等

    • 选择一个合适的位置,设置主目录配置(Jenkins | Manage Jenkins | Configure System;

    • 如果使用分布式构建(主/节点),在您的节点配置(Jenkins | Manage Jenkins | Manage Nodes | Configure =>远程根目录)到适当的位置

相关内容

最新更新