My pom.xml
имеет эту зависимость:
<dependency>
<groupId>net.sf.json-lib</groupId>
<artifactId>json-lib</artifactId>
<version>2.4</version>
<classifier>jdk15</classifier>
</dependency>
Когда я использую XMLSerializer
, он выдает исключение: java.lang.NoClassDefFoundError: nu/xom/Node
Если я запускаю класс локально и добавляю JAR в мой путь к классам, все работает так, как ожидалось. Я запускаю этот класс в качестве плагина Jenkins, поэтому я не ожидаю, что будет вручную определять путь к классам - я понял, что Maven должен обрабатывать.
Важно отметить, что плагины Jenkins требуют загрузки файла hpi
, который создается из Maven. Он не работает на выходе jar
. Если я поеду на коробку Дженкинса и вручную поставлю JOM XOM в WEB-INF/libs
, он будет работать. Но, очевидно, это означает, что этот плагин не будет для других людей, что саморазрушится.
Ниже приведен минимальный код, вызывающий ошибку: https://github.com/DaveStein/parser-sample
Readme имеет точные этапы воспроизведения.
Примечание по выбранному ответу
PR для моего образца репо доставил мне большую часть пути туда, где я должен был быть. У меня было еще несколько проблем, которые пришлось решить, но конфликт JSONObject был основной проблемой. Я вынул все GlobalConfiguration, как предложил Джесси PR. Единственная проблема, которая может иметь отношение к будущему редактору, - это сбой при использовании xom
как явной зависимости, а также использования более высокой версии, чем 1.626 для org.jenkins-ci.plugins
во время этого сообщения.