apigee / apigee-deploy-maven-plugin

Apache License 2.0
80 stars 169 forks source link

Dependency exception during configure-bundle goal #194

Closed PG9999 closed 1 year ago

PG9999 commented 2 years ago

Hi, We have been facing an error in our pipeline. Similar issue logged here #184

Failed to execute goal io.apigee.build-tools.enterprise4g:apigee-edge-maven-plugin:1.3.2:configure (configure-bundle) on project Biller-Payment-v2: Execution configure-bundle of goal io.apigee.build-tools.enterprise4g:apigee-edge-maven-plugin:1.3.2:configure failed: Plugin io.apigee.build-tools.enterprise4g:apigee-edge-maven-plugin:1.3.2 or one of its dependencies could not be resolved: Failed to collect dependencies at io.apigee.build-tools.enterprise4g:apigee-edge-maven-plugin:jar:1.3.2 -> com.google.guava:guava:jar:31.1.0.redhat-00001: Failed to read artifact descriptor for com.google.guava:guava:jar:31.1.0.redhat-00001: com.google.guava:guava-parent:pom:31.1.0.redhat-00001 was not found in

Product - Apigee OPDK 4.50.00.14 Version - 1.3.2

Just wondering if the same needs to be fixed in plugin 1.x version

ssvaidyanathan commented 2 years ago

@PG9999 - Are you pointing your pom to the repo1.maven.org repository or your corporate Maven repo? If latter, can you check if that repo has the dependency in it?

kusznerr commented 2 years ago

UPDATE: After forcing snapshot refresh, and making sure mvn central is used, it went thru successfully.

Yea , but com.google.guava:guava:jar:31.1.0.redhat-00001 does not exist in the maven central repo...

https://repo1.maven.org/maven2/com/google/guava/guava/

I also got the same error when starting fresh deploys

ssvaidyanathan commented 2 years ago

not sure where that dependency is coming from, will have to find that. Are you still having issues?

PG9999 commented 2 years ago

@ssvaidyanathan The dependency is coming from below guava maven dependency. `

com.google.guava
            <artifactId>guava</artifactId>
            <version>[24.1.1,)</version>
        </dependency>`

Refer - https://github.com/apigee/apigee-deploy-maven-plugin/blob/master/pom.xml

Where the version mentioned is [24.1.1,) that means latest available version above 24.1.1.

So while building, maven is trying to fetch the latest version that is https://mvnrepository.com/artifact/com.google.guava/guava/31.1.0.redhat-00001 released recently on Jul 07, 2022.

The issue here is that we are using internal maven repository which probably has taken time to sync with maven central repo or could be some other reason. I will talk to the concern team here but meanwhile do we know if there is a way to override it? or any other workaround? Thanks.

PG9999 commented 2 years ago

Update - I am able to fix it, but it's a workaround. We have added dependency under apigee deploy plugin to override the default behaviour. Below is the snippet of my parent pom.

`

io.apigee.build-tools.enterprise4g
            <artifactId>apigee-edge-maven-plugin</artifactId>
            <version>1.3.2</version>
            <dependencies>
                <dependency>
                    <groupId>com.google.guava</groupId>
                    <artifactId>guava</artifactId>
                    <version>30.1.0.redhat-00001</version>
                </dependency>
            </dependencies>
            <executions>
                <execution>
                    <id>configure-bundle</id>
                    <phase>package</phase>
                    <goals>
                        <goal>configure</goal>
                    </goals>
                </execution>
                <execution>
                    <id>deploy-bundle</id>
                    <phase>install</phase>
                    <goals>
                        <goal>deploy</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>`

However, It's a temporary fix and good to have a permanent solution as it might happen again. I would propose changing the guava dependency version to an exact version rather then letting maven searching for the latest one.

ssvaidyanathan commented 2 years ago

@PG9999 - will probably find if guava is needed by the plugin and if not, remove it from the pom and release a new version

ssvaidyanathan commented 2 years ago

I've removed the guava references in the pom and released a new version v1.3.3 It should be available in a few hours. Please try the new version and let me know. Will close the issue after that