为什么pom文件下载了很多jar包?

来源:3-11 Java API操作HDFS文件系统

qq_lcy_8

2017-12-08

http://img.mukewang.com/szimg/5a29f59e0001f01303520863.jpg

pom.xml完全跟老师你的一样,但是下载了很多其他的jar包,建立目录时会出现错误

java.lang.NoClassDefFoundError: org/apache/commons/configuration/Configuration

at org.apache.hadoop.metrics2.lib.DefaultMetricsSystem.<init>(DefaultMetricsSystem.java:38)

at org.apache.hadoop.metrics2.lib.DefaultMetricsSystem.<clinit>(DefaultMetricsSystem.java:36)

at org.apache.hadoop.security.UserGroupInformation$UgiMetrics.create(UserGroupInformation.java:120)

at org.apache.hadoop.security.UserGroupInformation.<clinit>(UserGroupInformation.java:236)

at org.apache.hadoop.fs.FileSystem.get(FileSystem.java:166)

at com.imooc.HDFSApp.setUp(HDFSApp.java:24)

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)

at java.lang.reflect.Method.invoke(Unknown Source)

at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:45)

at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)

at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:42)

at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:27)

at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:30)

at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:263)

at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:68)

at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:47)

at org.junit.runners.ParentRunner$3.run(ParentRunner.java:231)

at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:60)

at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:229)

at org.junit.runners.ParentRunner.access$000(ParentRunner.java:50)

at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:222)

at org.junit.runners.ParentRunner.run(ParentRunner.java:300)

at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:86)

at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)

at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:459)

at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:678)

at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:382)

at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:192)

Caused by: java.lang.ClassNotFoundException: org.apache.commons.configuration.Configuration

at java.net.URLClassLoader.findClass(Unknown Source)

at java.lang.ClassLoader.loadClass(Unknown Source)

at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)

at java.lang.ClassLoader.loadClass(Unknown Source)

... 30 more

测试代码如下:

package com.imooc;


import java.io.IOException;

import java.net.URI;

import java.net.URISyntaxException;


import org.apache.hadoop.conf.Configuration;

import org.apache.hadoop.fs.FileSystem;

import org.apache.hadoop.fs.Path;

import org.junit.After;

import org.junit.Before;

import org.junit.Test;


public class HDFSApp {


String uri = "hdfs://hadoop000:8020";

Configuration configuration = null;

FileSystem fileSystem = null;


@Before

public void setUp() throws IOException, URISyntaxException, InterruptedException {

System.out.println("setup");

configuration = new Configuration();

fileSystem = FileSystem.get(new URI(uri), configuration, "hadoop");

}


@Test

public void testGetDir() throws IllegalArgumentException, IOException {

fileSystem.mkdirs(new Path("/hdfsapi/test"));

}


@After

public void tearDown() {

System.out.println("teardown");

configuration = null;

fileSystem = null;

}


}


写回答

1回答

Michael_PK

2017-12-08

就是这样的,它就是用来管理jar的依赖的,否则自己一个个的jar管理就疯了

0
5
qq_lcy_8
回复
Michael_PK
maven下载的包不完整,删了重新下就好了
2017-12-08
共5条回复

10小时入门大数据

【毕设】大数据零基础入门必备,轻松掌握Hadoop开发核心技能

1456 学习 · 656 问题

查看课程