我正在尝试使用Jenkins CI为NetBeans多层Web应用程序项目设置自动构建系统。此NetBeans项目包含EJB项目(用于Web应用程序的业务层)和WAR项目(用于应用程序的Web层)。我目前仍然坚持让Ant来编译项目。
我正在使用Windows 8在NetBeans IDE 8.0中进行开发。 Jenkins也在Windows 8上运行。
我目前正在寻找了解如何使用Jenkins和Ant构建EJB项目的人。
到目前为止我做了什么:
我遇到困难的地方:
成功执行带有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=128505和Error with database in javafx DataApp demo
任何帮助都表示赞赏,因为我对持续集成系统,开发Web应用程序和构建工具仍然很陌生。
另外,我还没有把Maven或Gradle作为替代品。因此,问题的解决方案也许可能是切换到另一个构建工具..?
答案 0 :(得分:1)
在我看来,好像没有定义属性libs.MySQLDriver.classpath。 当Ant无法解析属性时,它会在输出中使用属性名称。
尝试定义
libs.MySQLDriver.classpath
在Jenkins的属性字段中,您还定义了另外两个属性。
您需要将其指向您的MySQL JDBC驱动程序。