Я пытаюсь извлечь полное дерево зависимостей артефактов 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)
безуспешно.
Мне интересно, как я могу получить все зависимости, приведенные в этом примере?