【发布时间】:2014-10-15 02:24:19
【问题描述】:
我正在尝试在 Jenkins 上使用 ant 运行 ear 任务。 ant 任务在我的本地机器上成功构建。
但是,当我尝试使用 Jenkins 构建时,我收到以下错误:“指定的工作区无效”。我尝试对工作区值进行硬编码,尝试从环境变量中获取它,还尝试在自定义工作区中定义它,然后访问它。
但我不断收到以下错误:
[subProjEAR] $ cmd.exe /C '"F:\Build\Ant\apache-ant-1.8.4\bin\ant.bat && exit %%ERRORLEVEL%%"'
Buildfile: E:\Jenkins\jobs\ProjectDev\workspace\subProjEAR\build.xml
init.env:
init.typedefs:
Trying to override old definition of task apt
init:
BUILD FAILED
E:\Jenkins\jobs\ProjDev\workspace\subProjEAR\build.xml:81: Specified workspace directory "E:\Jenkins\jobs\ProjDev\workspace" is not valid.
Total time: 0 seconds
Build step 'Invoke Ant' marked build as failure`
第 81 行的代码如下所示
<target name="init" depends="init.env,init.typedefs" unless="init.executed">
<property name="init.executed" value="true" />
<fail unless="workspace" message="The workspace property needs to be set!" />
<dirname property="project.dir" file="${ant.file}" />
<property name="echo.metadata" value="false" />
<!-- Line below is no 81 -->
<mdimport workspace="${workspace}" pjdir="${project.dir}" echo="${echo.metadata}">
</mdimport>
<property name="archive.name" value="${project.name}.ear"/>
<property name="uri" value=""/>
</target>
我在“本地机器”中创建了一个名为 WORKSPACE 的环境变量。回显可以正确打印 (C:\bea\user_projects\w4WP_workspaces\myProjWS)。我还在 Jenkins 机器上设置了 WORKSPACE 环境变量。这是与 Jenkins 相同的工作区。 Jenkins 上的 Echo 打印以下内容:
Buildfile: E:\Jenkins\jobs\ProjectDev\workspace\subProjEAR\build.xml
init.env:
init.typedefs:
Trying to override old definition of task apt
init:
[echo] workspace : E:\Jenkins\jobs\ProjectDev\workspace
[echo] weblogic workspace : ${env.WORKSHOP_WORKSPACE}
BUILD FAILED
E:\Jenkins\jobs\ProjectDev\workspace\subProjEAR\build.xml:85: Specified workspace directory "E:\Jenkins\jobs\ProjectDev\workspace" is not valid.
请帮忙。
【问题讨论】:
-
如果 Jenkins 不是当前所有者,请尝试让 Jenkins 成为工作区和其中文件的所有者。如果您手动创建了工作区,则应将文件移出,运行 Jenkins,Jenkins 将为该作业创建自己的工作区。
-
感谢 elrobe 的回复。工作区仅由 Jenkins 创建。在构建之前,Jenkins 会将所有项目文件从 cvs 检出到工作区中,然后在检出完成后,它会构建它,这就是错误出现的时候。
标签: ant build jenkins weblogic9.x