Как получить зависимости, входящие в «предоставляемую» область действия артефактов Maven Central? - PullRequest
0 голосов
/ 03 мая 2019

Я пытаюсь извлечь полное дерево зависимостей артефактов Maven Central, используя Arquillian's ShrinkWrap resolver версия 3.1.3. Я могу получить зависимости, которые находятся в области «компиляции», но не для других областей (например, «предоставлено» или «время выполнения»).

При попытке разрешить com.liferay.portal:com.liferay.portal.impl:2.9.0, используя следующий код по умолчанию:

MavenResolvedArtifact[] artifacts = Maven.resolver()
.resolve("com.liferay.portal:com.liferay.portal.impl:2.9.0")
                .withTransitivity()
                .asResolvedArtifact();

Я получаю только сам артефакт без зависимостей. Взгляните на файл pom.xml артефакта в Maven Central и обнаружите три «предоставленные» зависимости, которые я пропускаю:

<dependencies>
  <dependency>
    <groupId>com.liferay.portal</groupId>
    <artifactId>com.liferay.portal.kernel</artifactId>
    <version>2.9.0</version>
    <scope>provided</scope></dependency>
  <dependency>
    <groupId>com.liferay.portal</groupId>
    <artifactId>com.liferay.util.bridges</artifactId>
    <version>2.9.0</version>
    <scope>provided</scope>
  </dependency>
  <dependency>
    <groupId>com.liferay.portal</groupId>
    <artifactId>com.liferay.util.java</artifactId>
    <version>2.9.0</version>
    <scope>provided</scope>
  </dependency>
</dependencies>

Я попытался указать "com.liferay.portal:com.liferay.portal.impl:POM:2.9.0" в resolve(), а также вручную загрузить pom.xml, используя loadPomFromFile(), а затем .importDependencies(ScopeType.COMPILE, ScopeType.PROVIDED, ScopeType.RUNTIME, ScopeType.SYSTEM).resolve(), но безуспешно.

РЕДАКТИРОВАТЬ: я также пытался Maven.resolve(...).using(AcceptAllStrategy.INSTANCE) безуспешно.

Мне интересно, как я могу получить все зависимости, приведенные в этом примере?

...