2011-02-05 6 views
3

이 기사의 예제 코드를 시도해 보자 : Load Recovery.gov Grant Data into a CouchDB Database. Java 언어에 익숙하지만 Maven 빌드 시스템에 대해서는 아무것도 모릅니다.Maven으로 자바 프로젝트 빌드 및 실행하기

내가 'MVN 패키지'를 실행하여 프로젝트를 빌드 관리했습니다,하지만 난 그것을 실행하려고 할 때 다음과 같은 얻을 :

[email protected]:~/source/sample-parse$ java -cp target/sample-parse-1.0-SNAPSHOT.jar com.discursive.sample.parse.LoadingGrants 
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/http/HttpEntity 
Caused by: java.lang.ClassNotFoundException: org.apache.http.HttpEntity 
     at java.net.URLClassLoader$1.run(URLClassLoader.java:202) 
     at java.security.AccessController.doPrivileged(Native Method) 
     at java.net.URLClassLoader.findClass(URLClassLoader.java:190) 
     at java.lang.ClassLoader.loadClass(ClassLoader.java:307) 
     at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301) 
     at java.lang.ClassLoader.loadClass(ClassLoader.java:248) 

내가 제대로 내 CLASSPATH를 설정하는 다른 일을해야합니까 ?

감사합니다.

답변

5

올바르게 병을 만들었지 만 코드를 실행할 때 org.apache.httpcomponents을 포함하는 jar에 classpath를 추가해야합니다. 패키지를 하나의 병으로 포장하려면 maven assembly pluginjar-with-dependencies을 사용하십시오.

당신이 이것을 모를 경우를 대비해, maven은 관습에 따라 저장소 jar 파일을 .m2\repository 폴더의 로컬 저장소에 다운로드합니다. 거기에 org.apache.httpcomponents을 찾을 수 있어야합니다.

+0

은 어셈블리 플러그인에 대한 링크를 추가 할 수 있습니다. http://maven.apache.org/plugins/maven-assembly-plugin/descriptor-refs.html#jar-with-dependencies –

+0

예 진행 중입니다. 링크 추가 – CoolBeans

+0

도움에 감사드립니다. 지금은'~/.m2/repository'에서 모든 항아리를'CLASSPATH'에 끼워 넣기 만하면됩니다. 'jar-with-dependencies'가 어떻게 작동하는지 알아 내려고합니다. – incandenza

관련 문제