java - Maven 没有拉动我的依赖

标签 java maven

我有

mvn依赖:解决

[INFO] [dependency:resolve {execution: default-cli}]
[INFO] 
[INFO] The following files have been resolved:
[INFO]    junit:junit:jar:3.8.1:test
[INFO]    org.jsoup:jsoup:jar:1.8.2:compile

在 pom.xml 中

 39   <dependency>                                                                  
 40         <groupId>org.jsoup</groupId>                                            
 41         <artifactId>jsoup</artifactId>                                          
 42         <version>1.8.2</version>                                                
 43   </dependency>                                                                 
 44   </dependencies>  

但是运行代码时

java -jar /home/andref/AndroidStudioProjects/PostCrossJsoup/postcrossing-jsoup/target/postcrossing-jsoup-1.0-SNAPSHOT.jar

我明白了

Hello World!
class com.far.postcrossing.jsoup.Connect Connect fetch https://www.postcrossing.com method GET
Exception in thread "main" java.lang.NoClassDefFoundError: org/jsoup/Jsoup
        at com.far.postcrossing.jsoup.Connect.fetch(Connect.java:57)
        at com.far.postcrossing.jsoup.Connect.getCSRF(Connect.java:37)
        at com.far.postcrossing.jsoup.Auth.goAuth(Auth.java:45)
        at com.far.postcrossing.jsoup.App.main(App.java:13)
Caused by: java.lang.ClassNotFoundException: org.jsoup.Jsoup
        at java.net.URLClassLoader$1.run(URLClassLoader.java:372)
        at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:360)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
        ... 4 more

此异常未找到依赖项

    <configuration>
        <archive>
                <manifest>
                        <addClasspath>true</addClasspath>
                        <classpathPrefix>lib/</classpathPrefix>
                        <mainClass>com.far.postcrossing.jsoup.App</mainClass>
                </manifest>
        </archive>
        <descriptorRefs>
     <descriptorRef>jar-with-dependencies</descriptorRef>
   </descriptorRefs>
        </configuration>

最佳答案

根据配置,您的项目具有对 jsoup 的编译依赖项。

您的项目在应用程序执行期间失败。 如果您确实需要jsoup在编译过程中,如果maven没有下载/解析jsoup,编译阶段就会失败。依赖性。

更有可能的是你没有正确配置程序集插件,甚至使用了错误的jar(没有依赖项的jar)。

根据Maven Assembly Plugin Page具有依赖项的 jar 的默认名称是 <projectname>-<version>-jar-with-dependencies.jar

来自Maven Assembly Plugin Page :

Then, to create a project assembly, simple execute the normal package phase from the default lifecycle: you need to attach it with a phase explicitly Execution: Building an Assembly

mvn package When this build completes, you should see a file in the target directory with a name similar to the following:

target/sample-1.0-SNAPSHOT-jar-with-dependencies.jar

在你的情况下,预期的 jar 是这样的: target/postcrossing-jsoup-1.0-SNAPSHOT-jar-with-dependencies.jar

关于java - Maven 没有拉动我的依赖,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31369447/

相关文章:

java - 由于未声明异常,编译失败,即使已声明

java - 将对象添加到数组列表 ArrayList<Fitness>

java - Java 中的 Cookie 解析

java - 在 OSX 上通过 Maven 运行 Jetty - 阻止 "Launcher"应用程序打开

android - 在 Eclipse 中重新定位 AndroidManifest.xml 对 ADT 插件的支持的可能性

java - Tomcat 不解释 jsp 语法

java - 发送 HTTP GET 请求的最佳实践

java - 由于 Bean Validation API,无法启动 Hibernate Validator

java - 多个 Maven 配置文件激活多个 Spring 配置文件

java - Sonar 故障安全测试结果