Groovy RESTClient не работает на машине с Windows 7 - PullRequest
0 голосов
/ 02 июня 2018

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

Groovy ver = 2.4.15 OS = Windows 7

@Grab(group='org.codehaus.groovy.modules.http-builder',module='http-builder',version='0.7.1')

import groovyx.net.http.HTTPBuilder

enter image description here

1 Ответ

0 голосов
/ 03 июня 2018

Как уже упоминалось в комментариях, я думаю, что лучше всего начать с запуска сценария со следующим включенным флагом:

~> groovy -Dgroovy.grape.report.downloads=true <yourscript>

, который должен дать вам некоторые записи, указывающие, каково разрешение винограда.делать и, надеюсь, где он пытался загрузить файл, когда он потерпел неудачу.

Для обзора механизма разрешения винограда вы можете обратиться к заводной документации по винограду .

Я предполагаю, что groovy пытается использовать несколько распознавателей (например, maven central, jcenter и т. Д.), И один из них рано выходит из строя, даже если у более позднего есть артефакт.В такой ситуации механизм разрешения, естественно, должен продолжать попытки, пока не найдет работающий артефакт, но раньше я видел, как что-то не так.

Чтобы изменить порядок и поведение разрешения, вы должны посмотреть файл:

<your user home dir>/.groovy/grapeConfig.xml

, где, если файл не существует, groovy использует следующие данные по умолчанию для файла:

<ivysettings>
  <settings defaultResolver="downloadGrapes"/>
  <resolvers>
    <chain name="downloadGrapes" returnFirst="true">
      <filesystem name="cachedGrapes">
        <ivy pattern="${user.home}/.groovy/grapes/[organisation]/[module]/ivy-[revision].xml"/>
        <artifact pattern="${user.home}/.groovy/grapes/[organisation]/[module]/[type]s/[artifact]-[revision](-[classifier]).[ext]"/>
      </filesystem>
      <ibiblio name="localm2" root="file:${user.home}/.m2/repository/" checkmodified="true" changingPattern=".*" changingMatcher="regexp" m2compatible="true"/>
      <!-- todo add 'endorsed groovy extensions' resolver here -->
      <ibiblio name="jcenter" root="https://jcenter.bintray.com/" m2compatible="true"/>
      <ibiblio name="ibiblio" m2compatible="true"/>
    </chain>
  </resolvers>
</ivysettings>

(из Groovy GitHub репо )

Здесь следует отметить две вещи:

  • Атрибут returnFirst.Механизм разрешения будет пробовать преобразователи один за другим и возвращать первое попадание для этого конкретного артефакта.Если моя догадка верна, это не работает должным образом, и ранний распознаватель не работает и не дает более позднему разрешителю шанс разрешить артефакт.
  • Список распознавателей упорядочен, поэтому изменение этого порядка повлияет на результат.

Итак, короткая история: включите отладку и посмотрите, дает ли это что-нибудь.

Затем либо измените или создайте файл grapeConfig.xml и либо:

  • изменить порядок элементов ibiblio, чтобы изменить порядок разрешения.
  • добавить еще один преобразователь maven (т. Е. Добавить еще один ibiblio узел) для цели, которую вы проверили, имеет артефакт (и добавьте его первымв цепи, чтобы убедиться, что один из других не потерпит неудачу первым).
  • или поиграйте с флагом returnFirst, чтобы увидеть, если установка на false решит вашу проблему
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...