【问题标题】:Help building and running a Java project with Maven使用 Maven 帮助构建和运行 Java 项目
【发布时间】:2011-02-05 17:10:59
【问题描述】:

我想试用本文中的示例代码:Load Recovery.gov Grant Data into a CouchDB Database。我熟悉 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 吗?

谢谢!

【问题讨论】:

    标签: java build maven classpath


    【解决方案1】:

    您正确构建了 jar,但是当您运行代码时,您需要将类路径添加到包含 org.apache.httpcomponents 的 jar 中。如果您想将其打包为一个 jar,请使用 maven assembly plugin jar-with-dependencies

    顺便说一句,如果您不知道这一点,maven 按照惯例会将存储库 jar 文件下载到您的 .m2\repository 文件夹下的本地存储库中。你应该可以在那里找到org.apache.httpcomponents

    【讨论】:

    • 可能想添加一个到程序集插件的链接:maven.apache.org/plugins/maven-assembly-plugin/…
    • 是的,我正在添加该链接。
    • 感谢您的帮助。现在我只是将~/.m2/repository 中的所有罐子塞进CLASSPATH 中。我将努力弄清楚jar-with-dependencies 的工作原理。
    • 不客气。一旦你掌握了它,你就会爱上 maven。从蚂蚁过渡后,我再也没有回头。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-06-28
    • 2017-03-24
    • 2016-03-15
    • 2016-03-02
    • 1970-01-01
    • 2018-01-14
    相关资源
    最近更新 更多