我有一个maven项目,其结构大致如下:
sourceProject
- src
- distribution
- pom.xml
pom.xml正在构建项目并将源代码复制到分发中,包括依赖项等。源项目将提交到我们的存储库,包括空的分发文件夹。
在下游,我有一个ant build.xml,它将分发文件夹复制到目标文件夹并构建一个zip。相关命令是:
<copy todir="${buildDirectory}/features/project/root/sourceProject">
<fileset dir="${basedir}/../sourceProject/distribution" />
</copy>
在我的本地计算机上,一切正常。但是,一旦我将它提交到我们的存储库,相应的Jenkins作业就会失败并出现以下异常:
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.apache.maven.plugins:maven-antrun-plugin:1.6:run (default) on project myProject: An Ant BuildException has occured: The following error occurred while executing this line:
/home/jenkins/mySubProject/build.xml:48: /home/jenkins/sourceProject/distribution does not exist.
我假设,我需要在sourceProject pom.xml中指定发行版,但到目前为止我的尝试失败了。
答案 0 :(得分:1)
好的,实际上非常简单。错误在相对路径中。 Jenkins上的工作不是复制我们存储库的结构。来自不同作业的控制台输出的一些细节有助于理解jenkins服务器上的相对路径。