phoenix-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Vincent Poon (JIRA)" <>
Subject [jira] [Commented] (PHOENIX-4781) Phoenix client project's jar naming convention causes maven-deploy-plugin to fail
Date Sat, 01 Dec 2018 01:30:00 GMT


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:
>             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

View raw message