Java Intellij-maven模块依赖性。NoClassDefFound错误
我创建了一个maven base项目,它有两个模块,Java Intellij-maven模块依赖性。NoClassDefFound错误,java,maven,intellij-idea,Java,Maven,Intellij Idea,我创建了一个maven base项目,它有两个模块,a和B。在A中,我添加了B作为依赖项,还通过项目结构在B中添加了来自maven的JSoup 现在我想运行以下代码 A: public class A { public static void main(String args[]){ new B().foo(); } } public class B { public void foo() { System.out.println("B.
a
和B
。在A
中,我添加了B
作为依赖项,还通过项目结构在B
中添加了来自maven的JSoup
现在我想运行以下代码
A:
public class A {
public static void main(String args[]){
new B().foo();
}
}
public class B {
public void foo() {
System.out.println("B....");//prints B...
new Document("S");// NoClassDefFoundError exception
}
}
B:
public class A {
public static void main(String args[]){
new B().foo();
}
}
public class B {
public void foo() {
System.out.println("B....");//prints B...
new Document("S");// NoClassDefFoundError exception
}
}
当我运行以下代码时,它会显示:
Exception in thread "main" java.lang.NoClassDefFoundError: org/jsoup/nodes/Document
Jsoup仅添加到B.iml
而不是B.pom
文件中:
<orderEntry type="library" exported="" name="org.jsoup:jsoup:1.8.3" level="project" />
A的pom
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<artifactId>xxx</artifactId>
<groupId>xxx</groupId>
<version>0.5-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>A</artifactId>
</project>
xxx
xxx
0.5-1快照
4.0.0
A.
B的pom:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<artifactId>xxx</artifactId>
<groupId>xxx</groupId>
<version>0.5-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>B</artifactId>
</project>
xxx
xxx
0.5-1快照
4.0.0
B
您没有将B作为依赖项添加到a。为此,必须将a的pom.xml添加到此行
<dependencies>
<dependency>
<groupId>xxx</groupId>
<artifactId>B</artifactId>
<version>0.5-SNAPSHOT</version>
</dependency>
</dependencies>
xxx
在A中,我添加了B作为依赖项
因此也需要将此依赖项添加到的pom文件中
<dependencies>
<dependency>
<groupId>xxx</groupId>
<artifactId>B</artifactId>
<version>0.5-SNAPSHOT</version>
</dependency>
</dependencies>
via项目结构
IntelliJ和Maven依赖关系管理互不相关。您是否尝试过使用Maven时,在pom中声明依赖关系,而不是else@KarthikeyanVaithilingam是的,但还是有例外appears@Salvador你能发布你的pom.xml和module structure.AFAIK吗,另一种方法是,将maven项目导入intellij,以便从pom.xml更新项目文件(iml等)