Camden Holt created JENKINS-13917:
-------------------------------------
Summary: Artifactory plugin libraries affecting the path used
during an Ant build
Key: JENKINS-13917
URL: https://issues.jenkins-ci.org/browse/JENKINS-13917
Project: Jenkins
Issue Type: Bug
Components: artifactory
Affects Versions: current
Environment: Linux (CentOS 6)
Reporter: Camden Holt
Assignee: yossis
We have a job using an Ant script to perform the build. One of the targets in
this script generates instrumented classes to enable us to generate a Cobertura
coverage report.
As part of our set of standard libraries, we include various jars from the
slf4j suite. When we enable the Artifactory plugin for this job, the Cobertura
Ant target fails, because of an incompatible set of jars being used. The
snippet of output below is generated with verbose logging from the VM:
12:19:40 cobertura-instrumented-src-classes:
12:19:40 [Loaded net.sourceforge.cobertura.ant.CommonMatchingTask from
file:/opt/jenkins/jobs/data-processing/workspace/test-lib/cobertura-1.9.4.1.jar]
12:19:40 [Loaded net.sourceforge.cobertura.ant.InstrumentTask from
file:/opt/jenkins/jobs/data-processing/workspace/test-lib/cobertura-1.9.4.1.jar]
12:19:40 [Loaded net.sourceforge.cobertura.ant.MergeTask from
file:/opt/jenkins/jobs/data-processing/workspace/test-lib/cobertura-1.9.4.1.jar]
12:19:40 [Loaded net.sourceforge.cobertura.ant.CheckTask from
file:/opt/jenkins/jobs/data-processing/workspace/test-lib/cobertura-1.9.4.1.jar]
12:19:40 [Loaded net.sourceforge.cobertura.ant.ReportTask from
file:/opt/jenkins/jobs/data-processing/workspace/test-lib/cobertura-1.9.4.1.jar]
12:19:40 [Loaded net.sourceforge.cobertura.ant.Ignore from
file:/opt/jenkins/jobs/data-processing/workspace/test-lib/cobertura-1.9.4.1.jar]
12:19:40 [Loaded net.sourceforge.cobertura.ant.IgnoreBranches from
file:/opt/jenkins/jobs/data-processing/workspace/test-lib/cobertura-1.9.4.1.jar]
12:19:40 [Loaded net.sourceforge.cobertura.ant.IncludeClasses from
file:/opt/jenkins/jobs/data-processing/workspace/test-lib/cobertura-1.9.4.1.jar]
12:19:40 [Loaded net.sourceforge.cobertura.ant.ExcludeClasses from
file:/opt/jenkins/jobs/data-processing/workspace/test-lib/cobertura-1.9.4.1.jar]
12:19:40 [Loaded org.apache.tools.ant.taskdefs.ImportTask from
file:/opt/apache-ant-1.8.1/lib/ant.jar]
12:19:40 [Loaded net.sourceforge.cobertura.util.CommandLineBuilder from
file:/opt/jenkins/jobs/data-processing/workspace/test-lib/cobertura-1.9.4.1.jar]
12:19:40 [Loaded org.apache.log4j.Category from
file:/opt/jenkins/jobs/data-processing/workspace/test-lib/log4j-over-slf4j-1.6.4.jar]
12:19:40 [Loaded org.apache.log4j.Logger from
file:/opt/jenkins/jobs/data-processing/workspace/test-lib/log4j-over-slf4j-1.6.4.jar]
** 12:19:40 [Loaded org.slf4j.MarkerFactory from
file:/opt/jenkins/plugins/artifactory/WEB-INF/lib/slf4j-api-1.5.8.jar]
12:19:40 [Loaded org.apache.tools.ant.util.DateUtils from
file:/opt/apache-ant-1.8.1/lib/ant.jar]
The line prefixed with ** shows the problem; the slf4j-api-1.5.8.jar is being
loaded from the artifactory plugin directory. This is an older version than
that supplied with our project which is 1.6.4 - and this is causing a problem
when the compilation step occurs.
When we run this from the command line using ant directly we can see that the
correct jar from within our project is loaded.
I'm afraid I don't understand fully how the addition of plugins affects the
build environment technically, but I assume that the Artifactory plugin has
been able to modify the environment/build path somehow to ensure that it's
available at the appropriate time. Unfortunately this seems to cause problems
if newer libraries are needed elsewhere.
We can work around this by using the Ant/Ivy/Artifactory integration from the
build script directly, but it would be good to be able to do this from Jenkins
and simplify our scripts.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:
https://issues.jenkins-ci.org/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira