Pact провайдера JVM из-за ошибки памяти в Jenkins - PullRequest
0 голосов
/ 19 марта 2020

Мы используем зависимость pact-jvm-provider для pact-проверки, и она работает нормально на локальном уровне, но я получаю ошибку из-за недостатка памяти при запуске команды mvn test в конвейере Jenkins.

Verification Failed - Uncaught exception during scan
19:52:33  
19:52:33  Failures:
19:52:33  
19:52:33  0) ItemsAssigned Event
19:52:33        Uncaught exception during scan
19:52:33  
19:52:33  [ERROR] Tests run: 7, Failures: 1, Errors: 6, Skipped: 0, Time elapsed: 35.366 s <<< FAILURE! - in VerifyDecanterGoodsSupplierEventContract
19:52:33  [ERROR] goods-supplier - ItemsAssigned Event  Time elapsed: 35.079 s  <<< FAILURE!
19:52:33  java.lang.AssertionError: 

19:52:33  0 - Uncaught exception during scan
19:52:33  java.lang.OutOfMemoryError: Java heap space
19:52:33    at nonapi.io.github.classgraph.fastzipfilereader.FastZipEntry$1.<init>(FastZipEntry.java:273)
19:52:33    at nonapi.io.github.classgraph.fastzipfilereader.FastZipEntry.open(FastZipEntry.java:268)
19:52:33    at io.github.classgraph.ClasspathElementZip$1.open(ClasspathElementZip.java:300)
19:52:33    at io.github.classgraph.ClasspathElementZip$1.openOrRead(ClasspathElementZip.java:316)
19:52:33    at io.github.classgraph.Classfile.<init>(Classfile.java:1465)
19:52:33    at io.github.classgraph.Scanner$ClassfileScannerWorkUnitProcessor.processWorkUnit(Scanner.java:599)
19:52:33    at io.github.classgraph.Scanner$ClassfileScannerWorkUnitProcessor.processWorkUnit(Scanner.java:547)
19:52:33    at nonapi.io.github.classgraph.concurrency.WorkQueue.runWorkLoop(WorkQueue.java:245)
19:52:33    at nonapi.io.github.classgraph.concurrency.WorkQueue.runWorkQueue(WorkQueue.java:161)
19:52:33    at io.github.classgraph.Scanner.processWorkUnits(Scanner.java:337)
19:52:33    at io.github.classgraph.Scanner.performScan(Scanner.java:826)
19:52:33    at io.github.classgraph.Scanner.openClasspathElementsThenScan(Scanner.java:964)
19:52:33    at io.github.classgraph.Scanner.call(Scanner.java:999)
19:52:33    at io.github.classgraph.Scanner.call(Scanner.java:74)
19:52:33    at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
19:52:33    at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
19:52:33    at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
19:52:33    at java.base/java.lang.Thread.run(Thread.java:834)

Ответы [ 2 ]

0 голосов
/ 15 апреля 2020

выше проблема с контрактом поставщика pact решается с помощью следующего решения:

До

Я использовал конструктор по умолчанию AmqpTarget (), и он сканировал все java классы.

publi c final Target target = new AmqpTarget ();

После

Теперь я указываю c имя пакета в конструкторе AmqpTarget

publi c final Target target = new AmqpTarget (Collections.singletonList ("com.example.service.pact.provider.event"));

Теперь проблема устранена .

0 голосов
/ 19 марта 2020

Сколько памяти у Дженкинса? Похоже, что есть какой-то плагин для сканирования (не связанный с Pact), который работает и ему не хватает памяти при этом.

Я предполагаю, что ваш ноутбук имеет больше памяти, чем Jenkins (который, возможно, также выполняет другие задания) ), и у него недостаточно ресурсов.

...