GoogleCloudPlatform / artifact-registry-maven-tools

Apache License 2.0
22 stars 23 forks source link

wagon is not loaded for parent pom resolution #57

Closed gaurav517 closed 2 years ago

gaurav517 commented 2 years ago

With documentation at https://cloud.google.com/artifact-registry/docs/java/quickstart, dependency resolution does not work if pom.xml has a parent pom. We get following error when doing mvn -U -X clean install:

Caused by: org.eclipse.aether.transfer.NoTransporterException: Unsupported transport protocol artifactregistry
    at org.eclipse.aether.transport.wagon.WagonTransporter.<init> (WagonTransporter.java:131)
    at org.eclipse.aether.transport.wagon.WagonTransporterFactory.newInstance (WagonTransporterFactory.java:116)
    at org.eclipse.aether.internal.impl.DefaultTransporterProvider.newTransporter (DefaultTransporterProvider.java:104)
    at org.eclipse.aether.connector.basic.BasicRepositoryConnector.<init> (BasicRepositoryConnector.java:129)
    at org.eclipse.aether.connector.basic.BasicRepositoryConnectorFactory.newInstance (BasicRepositoryConnectorFactory.java:155)
    at org.eclipse.aether.internal.impl.DefaultRepositoryConnectorProvider.newRepositoryConnector (DefaultRepositoryConnectorProvider.java:107)

Reason is that wagon is not loaded before parent pom resolution. Adding following in .mvn/extensions.xml as per documentation at https://maven.apache.org/docs/3.3.1/release-notes.html worked:

<extensions xmlns="http://maven.apache.org/EXTENSIONS/1.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
            xsi:schemaLocation="http://maven.apache.org/EXTENSIONS/1.0.0 http://maven.apache.org/xsd/core-extensions-1.0.0.xsd">
        <extension>
            <groupId>com.google.cloud.artifactregistry</groupId>
            <artifactId>artifactregistry-maven-wagon</artifactId>
            <version>2.1.2</version>
        </extension>
</extensions>

This would probably need a change in documentation. I spent several hours scratching my head. :(

Thanks.

yihanzhen commented 2 years ago

cc/ @nyap @Gridasov

nyap commented 2 years ago

The quickstart is only meant to take you through a simple use case. At the end of this section there's a link to more detailed Maven auth instructions. The detailed instructions for the wagon includes adding the wagon to /.mvn/extensions.xml in your child projects.