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

Vincent Poon commented on PHOENIX-4781:
---------------------------------------

Ok there's a bug in Maven, it seems.  We were explicitly skipping the 
maven-jar-plugin to avoid creating an actual jar for the artifact.  We didn't 
need it because as explained above, for phoenix-client we only have the shaded 
uber jar (there is no /src directory under phoenix-client).

Well apparently if you skip that, the shade plugin proceeds as expected and 
"replaces" the original jar (which we never created).  However, the in memory 
references are incorrect, such that when you get to the gpg:sign or deploy 
plugins, they think the original jar is missing, and hence throw an error.

This is all fixed by just allowing the empty jar to get created, then let the 
shade plugin overwrite that.

v4 patch attached, please review [~karanmehta93]

> Phoenix client project's jar naming convention causes maven-deploy-plugin to 
> fail
> ---------------------------------------------------------------------------------
>
>                 Key: PHOENIX-4781
>                 URL: https://issues.apache.org/jira/browse/PHOENIX-4781
>             Project: Phoenix
>          Issue Type: Improvement
>    Affects Versions: 5.0.0, 4.14.1
>            Reporter: Karan Mehta
>            Assignee: Karan Mehta
>            Priority: Major
>             Fix For: 4.15.0, 5.1
>
>         Attachments: PHOENIX-4781.001.patch, PHOENIX-4781.002.patch, 
> PHOENIX-4781.4.x-HBase-1.4.v3.patch, PHOENIX-4781.4.x-HBase-1.4.v4.patch, 
> PHOENIX-4781.addendum.patch
>
>
> `maven-deploy-plugin` is used for deploying built artifacts to repository 
> provided by `distributionManagement` tag. The name of files that need to be 
> uploaded are either derived from pom file of the project or it generates an 
> temporary one on its own.
> For `phoenix-client` project, we essentially create a shaded uber jar that 
> contains all dependencies and provide the project pom file for the plugin to 
> work. `maven-jar-plugin` is disabled for the project, hence the shade plugin 
> essentially packages the jar. The final name of the shaded jar is defined as 
> `phoenix-${project.version}\-client`, which is different from how the 
> standard maven convention based on pom file (artifact and group id) is 
> `phoenix-client-${project.version}`
> This causes `maven-deploy-plugin` to fail since it is unable to find any 
> artifacts to be published.
> `maven-install-plugin` works correctly and hence it installs correct jar in 
> local repo.
> The same is effective for `phoenix-pig` project as well. However we require 
> the require jar for that project in the repo. I am not even sure why we 
> create shaded jar for that project.
> I will put up a 3 liner patch for the same.
> Any thoughts? [~sergey.soldatov] [~elserj]
> Files before change (first col is size):
> {code:java}
> 103487701 Jun 13 22:47 
> phoenix-4.14.0-HBase-1.3-sfdc-1.0.14-SNAPSHOT-client.jar{code}
> Files after change (first col is size):
> {code:java}
> 3640 Jun 13 21:23 
> original-phoenix-client-4.14.0-HBase-1.3-sfdc-1.0.14-SNAPSHOT.jar
> 103487702 Jun 13 21:24 
> phoenix-client-4.14.0-HBase-1.3-sfdc-1.0.14-SNAPSHOT.jar{code}



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to