使用Maven构建和运行Java项目的帮助

3
我想尝试这篇文章中的示例代码:将Recovery.gov拨款数据加载到CouchDB数据库中。我熟悉Java语言,但对Maven构建系统一无所知。
我通过运行“mvn package”命令成功构建了该项目,但在尝试运行它时出现以下错误:
djm@surfer:~/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?

谢谢!

1个回答

5
您已经正确构建了JAR文件,但是在运行代码时,您需要将包含org.apache.httpcomponents的JAR文件添加到类路径中。如果您想将其打包为一个JAR文件,则可以使用Maven Assembly插件jar-with-dependencies选项。
顺便提一下,如果您不知道,Maven按照约定将存储库JAR文件下载到本地存储库.m2\repository文件夹下。您应该能够在那里找到org.apache.httpcomponents

你可能想要添加一个链接到汇编插件:http://maven.apache.org/plugins/maven-assembly-plugin/descriptor-refs.html#jar-with-dependencies - David Holbrook
是的,我正在添加那个链接的过程中。 - CoolBeans
感谢您的帮助。目前我只是通过将~/.m2/repository中的所有jar文件都添加到CLASSPATH中来解决了这个问题。我会继续研究如何使用jar-with-dependencies - incandenza
不客气。一旦你掌握了它,你会爱上Maven的。从Ant转换后,我再也没有回头看过。 - CoolBeans

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接