You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues-all@impala.apache.org by "ASF subversion and git services (Jira)" <ji...@apache.org> on 2020/10/15 19:31:00 UTC

[jira] [Commented] (IMPALA-10198) Unify Java components into a single maven project

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

ASF subversion and git services commented on IMPALA-10198:
----------------------------------------------------------

Commit 97856478ec4f952486786633d10e02d0682a0f94 in impala's branch refs/heads/master from Joe McDonnell
[ https://gitbox.apache.org/repos/asf?p=impala.git;h=9785647 ]

IMPALA-10198 (part 1): Unify Java in a single java/ directory

This changes all existing Java code to be submodules under
a single root pom. The root pom is impala-parent/pom.xml
with minor changes to add submodules.

This avoids most of the weird CMake/maven interactions,
because there is now a single maven invocation for all
the Java code.

This moves all the Java projects other than fe into
a top level java directory. fe is left where it is
to avoid disruption (but still is compiled via the
java directory's root pom). Various pieces of code
that reference the old locations are updated.

Based on research, there are two options for dealing
with the shaded dependencies. The first is to have an
entirely separate Maven project with a separate Maven
invocation. In this case, the consumers of the shaded
jars will see the reduced set of transitive dependencies.
The second is to have the shaded dependencies as modules
with a single Maven invocation. The consumer would see
all of the original transitive dependencies and need to
exclude them all. See MSHADE-206/MNG-5899. This chooses
the second.

This only moves code around and does not focus on version
numbers or making "mvn versions:set" work.

Testing:
 - Ran a core job
 - Verified existing maven commands from fe/ directory still work
 - Compared the *-classpath.txt files from fe and executor-deps
   and verified they are the same except for paths

Change-Id: I08773f4f9d7cb269b0491080078d6e6f490d8d7a
Reviewed-on: http://gerrit.cloudera.org:8080/16500
Reviewed-by: Joe McDonnell <jo...@cloudera.com>
Tested-by: Joe McDonnell <jo...@cloudera.com>


> Unify Java components into a single maven project
> -------------------------------------------------
>
>                 Key: IMPALA-10198
>                 URL: https://issues.apache.org/jira/browse/IMPALA-10198
>             Project: IMPALA
>          Issue Type: Improvement
>          Components: Infrastructure
>    Affects Versions: Impala 4.0
>            Reporter: Joe McDonnell
>            Priority: Major
>
> Currently, there are multiple maven projects in Impala's source. Each one is built separately with a separate maven invocation, while sharing a parent pom (impala-parent/pom.xml). This requires artificial CMake dependencies to avoid concurrent maven invocations (e.g. [https://github.com/apache/impala/commit/4c3f701204f92f8753cf65a97fe4804d1f77bc08]). 
> We should unify the Java projects into a single project with submodules. This will allow a single maven invocation. This makes it easier to add new Java submodules, and it fixes the "mvn versions:set" command.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

---------------------------------------------------------------------
To unsubscribe, e-mail: issues-all-unsubscribe@impala.apache.org
For additional commands, e-mail: issues-all-help@impala.apache.org