[ 
https://issues.apache.org/jira/browse/MNG-8121?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17846480#comment-17846480
 ] 

Gili commented on MNG-8121:
---------------------------

This issue seems to be related to 
https://issues.apache.org/jira/browse/MPLUGIN-384 and 
[https://github.com/apache/maven-plugin-tools/blob/master/maven-plugin-plugin/src/main/java/org/apache/maven/plugin/plugin/metadata/AddPluginArtifactMetadataMojo.java#L90]

I suspect that it is ultimately a duplicate of 
https://issues.apache.org/jira/browse/MNG-7375 which is blocked on 
[https://github.com/apache/maven/pull/645]

Meaning, maven-plugin-plugin 3.13.0 is incompatible with Maven 3.x. It can only 
be used with Maven 4.x. And the resulting error message (NullPointerException) 
makes it extremely difficult to figure out what is wrong.

Please improve the situation in maven-plugin-plugin. At the very least we 
should get a cleaner error message. Better yet would be to handle this scenario 
correctly in the plugin. It is a regression in the sense that older versions 
worked fine.

> NullPointerException at 
> org.apache.maven.artifact.repository.metadata.Metadata.merge 
> (Metadata.java:293)
> --------------------------------------------------------------------------------------------------------
>
>                 Key: MNG-8121
>                 URL: https://issues.apache.org/jira/browse/MNG-8121
>             Project: Maven
>          Issue Type: Bug
>          Components: Artifacts and Repositories
>    Affects Versions: 3.9.6
>         Environment: Maven 3.9.6
> maven-plugin-plugin 3.13.0
> org.sonatype.plugins:nexus-staging-maven-plugin:1.6.13
>            Reporter: Gili
>            Priority: Major
>
> TL;DR {{org.apache.maven.artifact.repository.metadata.Metadata.merge 
> (Metadata.java:293)}} throws {{NullPointerException}} if previous releases of 
> a plugin did not have a goalPrefix set.
>  
> At least, this is my interpretation of what is going on.
>  
> Background
> -------------
>  
> I have an open-source project at 
> [https://github.com/cmake-maven-project/cmake-maven-project/tree/v3.27.1-b1] 
> with the following coordinates:
>  
> <groupId>com.googlecode.cmake-maven-project</groupId>
> <artifactId>cmake</artifactId>
>  
> If I upgrade "maven-plugin-plugin" from version 3.10.1 to 3.13.0 I am forced 
> to set "<goalPrefix>" because of 
> https://issues.apache.org/jira/browse/MPLUGIN-450 and 
> [https://github.com/apache/maven-plugin-tools/commit/ed4774bcd8b8d2d1f7ff1196cf7644054cb3ae14#diff-624cbd32cd7fc0f3f9154fbec92b8a1aebb04614360b4a0b5fc28a407e99d743L96]
>  
> In my particular case, I set "<goalPrefix>cmake-binaries</goalPrefix>" inside 
> cmake-binaries-plugin/pom.xml.
> Now, when I try deploying a release to Maven Central I get the following 
> exception stack trace:
>  
>  
> {noformat}
> java.lang.NullPointerException
>     at org.apache.maven.artifact.repository.metadata.Metadata.merge 
> (Metadata.java:293)
>     at 
> org.apache.maven.artifact.repository.metadata.AbstractRepositoryMetadata.updateRepositoryMetadata
>  (AbstractRepositoryMetadata.java:99)
>     at 
> org.apache.maven.artifact.repository.metadata.AbstractRepositoryMetadata.storeInLocalRepository
>  (AbstractRepositoryMetadata.java:59)
>     at org.apache.maven.artifact.repository.metadata.MetadataBridge.merge 
> (MetadataBridge.java:56)
>     at org.eclipse.aether.internal.impl.DefaultDeployer.upload 
> (DefaultDeployer.java:399)
>     at org.eclipse.aether.internal.impl.DefaultDeployer.deploy 
> (DefaultDeployer.java:294)
>     at org.eclipse.aether.internal.impl.DefaultDeployer.deploy 
> (DefaultDeployer.java:202)
>     at org.eclipse.aether.internal.impl.DefaultRepositorySystem.deploy 
> (DefaultRepositorySystem.java:393)
>     at org.apache.maven.artifact.deployer.DefaultArtifactDeployer.deploy 
> (DefaultArtifactDeployer.java:131)
>     at 
> org.sonatype.nexus.maven.staging.deploy.strategy.AbstractDeployStrategy.deployUp
>  (AbstractDeployStrategy.java:213)
>     at 
> org.sonatype.nexus.maven.staging.deploy.strategy.StagingDeployStrategy.finalizeDeploy
>  (StagingDeployStrategy.java:125)
>     at org.sonatype.nexus.maven.staging.deploy.DeployMojo.execute 
> (DeployMojo.java:213)
>     at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo 
> (DefaultBuildPluginManager.java:126){noformat}
>  
> I assume that this is caused by {{preExisting.getPrefix()}} returning null, 
> but I have no idea why this is happening. Perhaps this is caused by previous 
> versions not have a goalPrefix set? Shouldn't the implementation handle this 
> possibility?



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to