Documentation - FAQ
Table of Contents
Invalid File or Directory artifacts/BankAccount/.../coverage/index.html
I updated phpUnderControl, but I still get no shiny Metric-Charts
No tag "jmxbase" defined in tag library imported with prefix "cruisecontrol"
Why some parts of CruiseControl should not be public accessible
CruiseControl does not detect executable like phpdoc, phpcs, phpunit
Invalid File or Directory artifacts/BankAccount/.../coverage/index.html
If you get this or a similar error message, then your CruiseControl installation contains a directory named artifacts. If this directory exists, CruiseControl will always look for project artifacts in this directory. Simply change the artifactpublisher-tags in your config.xml from logs/${project.name} to artifacts/${project.name}. Now CruiseControl will move the generated contents into the expected directory.
How do I perform a phpUnderControl update
Even if the command name install is a little bit confusing, this command does both jobs, a fresh install or an update of an existing installation.
I updated phpUnderControl, but I still get no shiny Metric-Charts
You have updated phpUnderControl, but you still get the old metric charts. You must adjust the publishers-section of the config.xml for your existing projects to get new shiny charts, generated by phpUnderControl, from this.
<publishers>
<execute command="phpuc graph logs/${project.name}"/>
</publishers>
If you use the artifacts folder for output you must add a second argument to the graph command.
<publishers>
<execute command="phpuc graph logs/${project.name} artifacts/${project.name}" />
</publishers>
This example is based on the PEAR installer and expects that phpuc is in the PATH environment variable. If you use the svn checkout, please change phpuc to phpuc.php.
No tag "jmxbase" defined in tag library imported with prefix "cruisecontrol"
When you try to open the phpUnderControl dashboard and get this error message, then the used CruiseControl version is to old. The referenced tutorial mentions the version 2.4.1 that was ok and up to date in 2006, but please update your CruiseControl installation to a more recent version.
I get an error about an invalid checkstyle.xml document
This could happen if you don't specify the optional @error attribute for the ant exec task. If this attribute is not specified every output, including all errors and warning, is logged into the checkstyle.xml document.
Are there any example configurations for phpUnderControl?
Yes, phpUnderControl provides two full documented build.xml and config.xml files that can be found in the docs directory.
PWC6033: Unable to compile class for JSP
After the last upgrade of phpUnderControl the dashboard only displays an error message "Type cannot be resolved"
PWC6033: Unable to compile class for JSP
PWC6197: An error occurred at line: 63 in the jsp file: /dashboard.jsp
PWC6199: Generated servlet error:
ProjectInfos cannot be resolved to a type
...
Since version 0.4.7 phpUnderControl provides a php-under-control.jar file that is placed in the WEB-INF directory. This modification requires a CruiseControl restart, to let CruiseControl recognize the new jar files.
Why some parts of CruiseControl should not be public accessible
The CruiseControl dashboard contains a handy feature to edit the config.xml file online. This means everybody who has access to a public available CruiseControl instance can modify this file online. Therefore you should use something like mod_proxy to only allow access to the required sections of your CruiseControl installation.
CruiseControl does not detect executable like phpdoc, phpcs, phpunit
You must add the .bat extension to the different PEAR executables when you use the windows operating system. So if you get an error message like:
BUILD FAILED
D:\CC\projects\php\build.xml:113: Execute failed:
java.io.IOException: Cannot run program "phpdoc" (in directory "D:\CC\projects\php"):
CreateProcess error=2, The system cannot find the file specified
try to add a .bat extension to the @executable attribute of the <exec /> tags
...
<target name="phpdoc">
<exec executable="phpdoc.bat" dir="${basedir}">
...
</exec>
</target>
...
NullPointerException when accessing artifacts
CruiseControl throws a NullPointerException when you access a page that contains artifacts or artifact links.
[cc]Feb-26 11:49:28 tifactsLinkTag- project is /php-under-control
02-26 11:49:28,667 [btpool0-6] INFO ArtifactsLinkTag - project is /php-under-control
02-26 11:49:28.805:/cruisecontrol:WARN: http://arwen:8080/cruisecontrol/error.jsp: (null)
java.lang.NullPointerException
at net.sourceforge.cruisecontrol.taglib.CruiseControlTagSupport.getXMLFile(CruiseControlTagSupport.java:134)
at net.sourceforge.cruisecontrol.taglib.CruiseControlTagSupport.findLogFile(CruiseControlTagSupport.java:127)
at net.sourceforge.cruisecontrol.taglib.ArtifactsLinkTag.getTimeString(ArtifactsLinkTag.java:98)
This will happen when your CruiseControl installation contains an /artifacts directory but your config.xml setup publishes artifacts into the /logs directory.