美文网首页
Ecplise配置Maven

Ecplise配置Maven

作者: hipeer | 来源:发表于2018-09-20 16:04 被阅读0次

1.下载Maven到/opt/maven目录中,解压缩

sudo tar -zxvf maven3.5.tar.gz
  1. 配置环境变量,修改/etc/profile文件,在里面加入下面的代码
export MAVEN_HOME=/opt/maven/apache-maven-3.5.3    
export PATH=$PATH:${MAVEN_HOME}/bin
  1. 让配置文件生效
source /etc/profile
  1. 测试Maven是否安装成功
mvn -version

如果成功就会出现

Apache Maven 3.5.4 (1edded0938998edf8bf061f1ceb3cfdeccf443fe; 2018-06-18T02:33:14+08:00)
Maven home: /opt/maven/maven3.5
Java version: 1.8.0_74, vendor: Oracle Corporation, runtime: /opt/jdk1.8.0_74/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "linux", version: "4.13.0-43-generic", arch: "amd64", family: "unix"
  1. 在Ecplise中集成Maven,打开Windows—>Preferences—>Maven—>installation选项,点击add添加maven
  1. 再点击User Settings选项把settings.xml地址填入User Settings输入框,在修改本地仓库路径为/home/root/.m2/repository(实际路径看自己心情自己选择),点击 Apply and Close关闭
  1. 修改settings.xml文件,在 注释的配置选项<localRepository></localRepository>旁添加下面的第一行代码,然后在配置选项 <mirrors> </mirrors>中添加剩下的代码,保存。
 <localRepository>/home/root/.m2/repository</localRepository>    
  
 <mirror>
      <id>mirrorId</id>
      <mirrorOf>central</mirrorOf>
      <name>Human Readable Name for this Mirror.</name>
      <url> http://repo1.maven.org/maven2/</url>
 </mirror>

现在就可以建maven项目了,如果是第一次创建时间会比较久

  1. 项目创建完成后,如果需要jar包只需要配置项目中的pom.xml文件就行了,我的配置模板放下面
<project xmlns="http://maven.apache.org/POM/4.0.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>hadoop</groupId>
    <artifactId>hdfs</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>jar</packaging>

    <name>hdfs</name>
    <url>http://maven.apache.org</url>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>

    <dependencies>

        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>3.8.1</version>
            <scope>test</scope>
        </dependency>

        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-api</artifactId>
            <version>1.8.0-beta2</version>
        </dependency>

        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-log4j12</artifactId>
            <version>1.8.0-beta2</version>
            <scope>test</scope>
        </dependency>


        <dependency>
            <groupId>jdk.tools</groupId>
            <artifactId>jdk.tools</artifactId>
            <version>1.8</version>
            <scope>system</scope>
            <systemPath>${JAVA_HOME}/lib/tools.jar</systemPath>
        </dependency>

        <dependency>
            <groupId>org.apache.hadoop</groupId>
            <artifactId>hadoop-common</artifactId>
            <version>2.7.3</version>
        </dependency>

        <dependency>
            <groupId>org.apache.hadoop</groupId>
            <artifactId>hadoop-hdfs</artifactId>
            <version>2.7.3</version>
        </dependency>

        <dependency>
            <groupId>org.apache.hadoop</groupId>
            <artifactId>hadoop-client</artifactId>
            <version>2.7.3</version>
        </dependency>

        <dependency>
            <groupId>org.apache.hadoop</groupId>
            <artifactId>hadoop-mapreduce-client-core</artifactId>
            <version>2.7.3</version>
        </dependency>

    </dependencies>
</project>

  1. 在Windows中的配置方法基本一样,就不记录了。但在Windows中和Linux中我分别遇到了一个小问题,记录一下。
  • 在Windows下的问题为:Missing artifact jdk.tools:jdk.tools:jar:1.8
    这是因为缺少了tools.jar包,解决方法就是在pom.xml中添加
        <dependency>
            <groupId>jdk.tools</groupId>
            <artifactId>jdk.tools</artifactId>
            <version>1.8</version>
            <scope>system</scope>
            <systemPath>${JAVA_HOME}/lib/tools.jar</systemPath>
        </dependency>

这个情况我在Linux中并没发现,而且在Linux中我也没有添加上面的代码

  • 在Linux下的问题为: Caused by: java.lang.ClassNotFoundException: org.slf4j.LoggerFactory。这个问题是我在Maven项目中运行Java操作HDFS的代码时发现的。
    这个问题的原因仍然时缺少jar包,在pom.xml添加
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-api</artifactId>
            <version>1.8.0-beta2</version>
        </dependency>

        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-log4j12</artifactId>
            <version>1.8.0-beta2</version>
            <scope>test</scope>
        </dependency>

添加完上面的代码后,就可以使用Java读取HDFS中的文件了

  1. 至此,Ecplise中集成Maven,创建Maven项目并使用Java访问HDFS都成功完成。把之前写的HCat类拿来运行看一下。
log4j:WARN No appenders could be found for logger (org.apache.hadoop.util.Shell).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
SLF4J: No SLF4J providers were found.
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#noProviders for further details.
Hello hipeer!

补充一下Linux的scp命令:

Linux scp命令用于Linux之间复制文件和目录。

scp [可选参数] file_source file_target 

-1: 强制scp命令使用协议ssh1
-2: 强制scp命令使用协议ssh2
-4: 强制scp命令只使用IPv4寻址
-6: 强制scp命令只使用IPv6寻址
-B: 使用批处理模式(传输过程中不询问传输口令或短语)
-C: 允许压缩。(将-C标志传递给ssh,从而打开压缩功能)
-p:保留原文件的修改时间,访问时间和访问权限。
-q: 不显示传输进度条。
-r: 递归复制整个目录。
-v:详细方式显示输出。scp和ssh(1)会显示出整个过程的调试信息。这些信息用于调试 连接,验证和配置问题。
-c cipher: 以cipher将数据传输进行加密,这个选项将直接传递给ssh。
-F ssh_config: 指定一个替代的ssh配置文件,此参数直接传递给ssh。
-i identity_file: 从指定文件中读取传输时使用的密钥文件,此参数直接传递给ssh。
-l limit: 限定用户所能使用的带宽,以Kbit/s为单位。
-o ssh_option: 如果习惯于使用ssh_config(5)中的参数传递方式,
-P port:注意是大写的P, port是指定数据传输用到的端口号
-S program: 指定加密传输时所使用的程序。此程序必须能够理解ssh(1)的选项。

scp local_file remote_username@remote_ip:remote_folder 
或者 
scp local_file remote_username@remote_ip:remote_file 
或者 
scp local_file remote_ip:remote_folder 
或者 
scp local_file remote_ip:remote_file 

相关文章

网友评论

      本文标题:Ecplise配置Maven

      本文链接:https://www.haomeiwen.com/subject/opcwnftx.html