我的项目在我的本地机器上编译并运行,但在Jenkins上,由于无法找到我的包,构建项目目标无法编译。我可以看到我认为我需要的罐子在我的./bin/
文件夹中,所以我预计会有类似路径或我的构建项目目标导致问题。
build.xml - >建立项目:
<target depends="init" name="build-project">
<echo message="${ant.project.name}: ${ant.file}" />
<javac debug="true" debuglevel="${debuglevel}" destdir="bin" includeantruntime="false" source="${source}" target="${target}">
<src path="src" />
<classpath refid="sierraMadreTestScripts.classpath" />
</javac>
</target>
关于Jenkins的错误消息摘录:
build-project:
[echo] sierraMadreTestScripts: /data/builds/jenkins/workspace/build.xml
[javac] Compiling 1 source file to /data/builds/jenkins/workspace/bin
[javac] /data/builds/jenkins/workspace/src/testScripts/TranslatorWorkflow.java:3: error: package org.junit does not exist
[javac] import static org.junit.Assert.fail;
[javac] ^
我可以发布完整的build.xml,ivy.xml,ivysettings.xml或其他诊断问题所需的内容。对不起,如果这是非常基本的;常春藤对我来说仍然很神秘。我在Eclipse中运行我的本地项目。
答案 0 :(得分:0)
以下问题概述了问题的根本原因:
Running ant build gives "package org.junit does not exist"
简而言之,像Eclipse这样的IDE会自动将junit放入类路径中...... Ivy实际上是为帮助解决这个问题而设计的,并且正确使用它可以用来管理项目类路径的所有方面。
如果不能访问您的构建逻辑,我必须猜测,但看起来您正在使用单个javac构建代码和测试?你有一个名为“sierraMadreTestScripts.classpath”的类路径,接下来的问题是如何创建和管理它。你的问题暗示常春藤是以某种方式参与的: - )