有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何使用Maven自动下载程序所需的依赖项?

我不熟悉使用Maven

我有具有依赖关系的Java文件。 例如:

import org.apache.hadoop.fs.Path;
import org.apache.hadoop.hbase.HBaseConfiguration;
import org.apache.hadoop.hbase.client.Delete;
import org.apache.hadoop.hbase.client.Get;
import org.apache.hadoop.hbase.client.HTable;
import org.apache.hadoop.hbase.client.Put;

在开发服务器中,没有Java编译器。我计划在桌面上编译Java文件,将类打包成jar文件,然后在开发服务器上执行程序

开发服务器拥有所有必需的文件,而桌面还没有。在桌面上编译时,我们如何使用Maven来处理这个问题

编辑:

我想使用Java将数据添加到hbase表中。Hbase在dev服务器中运行良好。我可以通过dev serv中的命令行在那里创建表。但是hbase/hadoop在桌面环境中并不存在

那么下载JAR会有帮助吗?还是我需要安装hadoop并在本地安装hbase


共 (4) 个答案

  1. # 1 楼答案

    如果我理解正确,您需要在Maven pom中配置一些compile-time-only dependencies。您可以在dependencies部分中执行,例如:

    <dependencies>
        <dependency>
            <groupId>org.apache.hadoop</groupId>
            <artifactId>hadoop-core</artifactId>
            <version>0.20.2</version>
            <scope>provided</scope>
        </dependency>
        ...
    </dependencies>
    

    您需要确定每个所需Hadoop包的artifactId和版本,然后将它们添加到依赖项中

  2. # 2 楼答案

    是的,Maven的学习曲线近乎垂直

    看起来你正在独自或与一个非常小的团队一起做一个非常小的内部工作。 在这种情况下,设置IDE(eclipse或NetBeans)可能就足够了, 手动解析依赖关系(在项目的a/lib文件夹中下载jar),并手动编译和导出二进制文件(jar)

  3. # 3 楼答案

    maven site中,将依赖项的scope设置为provided

  4. # 4 楼答案

    hadoop core、hbase和zookeeper是必需的hbase依赖项。此外,您应该尝试使用Cloudera,因为它们修复了ApacheJAR中的其他一些错误。看here

    此外,您不必在本地安装HBase。创建HBase配置时,只需将zookeeper quorom更改为指向zookeeper所在的服务器

    Configuration conf = HBaseConfiguration.create();
    conf.set("hbase.zookeeper.quorum", SERVER);
    conf.set("hbase.zookeeper.property.clientPort", PORT);