[
https://issues.apache.org/jira/browse/PHOENIX-1272?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Andrew Purtell updated PHOENIX-1272:
------------------------------------
Attachment: PHOENIX-1272.patch
Attached patch changes hbase-testing-util to test scope and makes it optional,
and adds hbase-server as a dependency of phoenix-core, also marked as optional
(or we won't compile).
According to Maven docs "If a user wants to use functionality related to an
optional dependency, they will have to redeclare that optional dependency in
their own project." So the dependency on hbase-server hopefully won't propagate.
Someone with a better handle on Maven then I should review.
> Avoid pulling in unintended HBase dependencies in phoenix-core
> --------------------------------------------------------------
>
> Key: PHOENIX-1272
> URL: https://issues.apache.org/jira/browse/PHOENIX-1272
> Project: Phoenix
> Issue Type: Bug
> Reporter: Andrew Purtell
> Assignee: Andrew Purtell
> Attachments: PHOENIX-1272.patch
>
>
> I think Phoenix might be pulling in all of the other HBase modules because
> phoenix-core specifies the 'hbase-testing-util' HBase module as a dependency,
> and not at test scope:
> {noformat}
> <dependencies>
> <dependency>
> <groupId>org.apache.hbase</groupId>
> <artifactId>hbase-testing-util</artifactId>
> <exclusions>
> <exclusion>
> <groupId>org.jruby</groupId>
> <artifactId>jruby-complete</artifactId>
> </exclusion>
> </exclusions>
> </dependency>
> ...
> {noformat}
> hbase-testing-util doesn't contain any code. It is a module you can use that
> will pull in everything needed to start up mini cluster tests, all of the
> HBase modules including hbase-server and the compat modules, with compile
> scope. Maven doc says about compile scope: "This is the default scope, used
> if none is specified. Compile dependencies are available in all classpaths of
> a project. Furthermore, those dependencies are propagated to dependent
> projects."
> Other test dependencies in the phoenix-core POM are included at test scope
> and tagged as optional, e.g.
> {noformat}
> <dependency>
> <groupId>org.apache.hadoop</groupId>
> <artifactId>hadoop-test</artifactId>
> <optional>true</optional>
> <scope>test</scope>
> </dependency>
> {noformat}
> Perhaps the same should be done for hbase-testing-util ?
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)