我该如何解决这个问题:Ant无法找到文件"什么时候尝试在Jenkins上构建Java Web应用程序?

时间:2014-07-31 14:13:09

标签: java netbeans ant jenkins ejb

我正在尝试使用Jenkins CI为NetBeans多层Web应用程序项目设置自动构建系统。此NetBeans项目包含EJB项目(用于Web应用程序的业务层)和WAR项目(用于应用程序的Web层)。我目前仍然坚持让Ant来编译项目。

我正在使用Windows 8在NetBeans IDE 8.0中进行开发。 Jenkins也在Windows 8上运行。

我目前正在寻找了解如何使用Jenkins和Ant构建EJB项目的人。

到目前为止我做了什么:

  • 我已经设置了NetBeans项目(如上所述)
  • 我为项目设置了一个git存储库
  • 我已成立Jenkins CI
  • 我可以使用Jenkins CI
  • 从git存储库中获取项目
  • 我能够让Jenkins使用Ant来清理它检索到的项目 来自git存储库

我遇到困难的地方:

成功执行带有Ant的 clean 命令后,我想让 debug 命令工作。为此,需要编译项目。这是出错的地方。

我在Jenkins中的Ant调用的属性字段中输入了以下属性:

libs.CopyLibs.classpath=C:/Program Files/NetBeans 8.0/java/ant/extra/org-netbeans-modules-java-j2seproject-copylibstask.jar
j2ee.server.home=C:/Program Files/wildfly-8.1.0.Final

在我的Jenkins构建的输出中,我看到以下命令:

[PGB Webapp] $ cmd.exe / C'"" C:\ Program Files(x86)\ Jenkins \ tools \ hudson.tasks.Ant_AntInstallation \ Apache_Ant \ bin \ ant.bat" " -Dlibs.CopyLibs.classpath = C:/ Program Files / NetBeans 8.0 / java / ant / extra / org-netbeans-modules-java-j2seproject-copylibstask.jar" " -Dj2ee.server.home = C:/ Program Files / wildfly-8.1.0.Final"干净的调试&&退出%% ERRORLEVEL %%"'

这是我输出的最后一部分:(对我来说最重要的部分)

init:

-init-cos:

-deps-module-jar:

-deps-ear-jar:

deps-jar:

-pre-pre-compile:
    [mkdir] Created dir: C:\Program Files (x86)\Jenkins\workspace\PGB Webapp\pgb-ejb\build\classes

-pre-compile:

-copy-meta-inf:
     [copy] Copying 2 files to C:\Program Files (x86)\Jenkins\workspace\PGB Webapp\pgb-ejb\build\classes\META-INF

-do-compile:
    [mkdir] Created dir: C:\Program Files (x86)\Jenkins\workspace\PGB Webapp\pgb-ejb\build\empty
    [mkdir] Created dir: C:\Program Files (x86)\Jenkins\workspace\PGB Webapp\pgb-ejb\build\generated-sources\ap-source-output
    [javac] Compiling 5 source files to C:\Program Files (x86)\Jenkins\workspace\PGB Webapp\pgb-ejb\build\classes

-post-compile:

compile:

-pre-dist:

library-inclusion-in-manifest:

BUILD FAILED
C:\Program Files (x86)\Jenkins\workspace\PGB Webapp\nbproject\build-impl.xml:204: The following error occurred while executing this line:
C:\Program Files (x86)\Jenkins\workspace\PGB Webapp\pgb-ejb\nbproject\build-impl.xml:806: Warning: Could not find file C:\Program Files (x86)\Jenkins\workspace\PGB Webapp\pgb-ejb\${libs.MySQLDriver.classpath} to copy.

Total time: 1 second
Build step 'Start Ant' marked build as failure
Finished: FAILURE

所以在这个输出中我看到以下警告:

警告:无法找到要复制的文件C:\ Program Files(x86)\ Jenkins \ workspace \ PGB Webapp \ pgb-ejb \ $ {libs.MySQLDriver.classpath}。

现在,对我而言,这似乎是一个罕见的问题,因为我在互联网上几乎找不到任何关于它的信息(或者我使用了错误的搜索词吗?)我已经在谷歌上搜索了这里的SO,以及DuckDuckGo,我只能找到以下(相当无用的)我的问题的线索:(相当无用,因为我得到的警告在那里提到,但上下文不同......)

https://netbeans.org/bugzilla/show_bug.cgi?id=128505Error with database in javafx DataApp demo

任何帮助都表示赞赏,因为我对持续集成系统,开发Web应用程序和构建工具仍然很陌生。

另外,我还没有把Maven或Gradle作为替代品。因此,问题的解决方案也许可能是切换到另一个构建工具..?

1 个答案:

答案 0 :(得分:1)

在我看来,好像没有定义属性libs.MySQLDriver.classpath。 当Ant无法解析属性时,它会在输出中使用属性名称。

尝试定义

libs.MySQLDriver.classpath

在Jenkins的属性字段中,您还定义了另外两个属性。

您需要将其指向您的MySQL JDBC驱动程序。