Sử dụng Maven đầu tiên của tôi và tôi bị kẹt với các phụ thuộc.NoClassDefFoundError về phụ thuộc Maven
Tôi đã tạo một dự án Maven với Eclipse và thêm các phụ thuộc, và nó hoạt động không có vấn đề gì.
Nhưng khi tôi cố gắng chạy nó thông qua dòng lệnh:
$ mvn package # successfully completes
$ java -cp target/bil138_4-0.0.1-SNAPSHOT.jar tr.edu.hacettepe.cs.b21127113.bil138_4.App # NoClassDefFoundError for dependencies
Nó tải phụ thuộc, xây dựng thành công, nhưng khi tôi cố gắng chạy nó, tôi nhận được NoClassDefFoundError:
Exception in thread "main" java.lang.NoClassDefFoundError: org/codehaus/jackson/JsonParseException
at tr.edu.hacettepe.cs.b21127113.bil138_4.db.DatabaseManager.<init>(DatabaseManager.java:16)
at tr.edu.hacettepe.cs.b21127113.bil138_4.db.DatabaseManager.<init>(DatabaseManager.java:22)
at tr.edu.hacettepe.cs.b21127113.bil138_4.App.main(App.java:10)
Caused by: java.lang.ClassNotFoundException: org.codehaus.jackson.JsonParseException
at java.net.URLClassLoader$1.run(URLClassLoader.java:217)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:205)
at java.lang.ClassLoader.loadClass(ClassLoader.java:321)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294)
at java.lang.ClassLoader.loadClass(ClassLoader.java:266)
... 3 more
pom My .xml giống như sau:
<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">
<modelVersion>4.0.0</modelVersion>
<groupId>tr.edu.hacettepe.cs.b21127113</groupId>
<artifactId>bil138_4</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<name>bil138_4</name>
<url>http://maven.apache.org</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<dependency>
<groupId>org.codehaus.jackson</groupId>
<artifactId>jackson-core-asl</artifactId>
</dependency>
<dependency>
<groupId>org.codehaus.jackson</groupId>
<artifactId>jackson-mapper-asl</artifactId>
</dependency>
</dependencies>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.codehaus.jackson</groupId>
<artifactId>jackson-core-asl</artifactId>
<version>1.9.6</version>
</dependency>
<dependency>
<groupId>org.codehaus.jackson</groupId>
<artifactId>jackson-mapper-asl</artifactId>
<version>1.9.6</version>
</dependency>
</dependencies>
</dependencyManagement>
</project>
Có ai giúp tôi không?
Lỗi này: http://pastebin.com/g2txkMY6. Tôi có thể chạy nó trên nhật thực với plugin m2eclipse, tôi đã phát triển ứng dụng trên đó. Tôi không thể chỉ ra cách để chạy nó thông qua dòng lệnh. Và làm thế nào để nhập classpath maven của tôi? Chỉnh sửa: Đã thử với việc thêm tham số -classpath /home/utdemir/.m2/repository/ vào lệnh java, vẫn không có may mắn. – utdemir
Đã cập nhật câu trả lời của tôi. –
Cảm ơn bạn. Đặt đường dẫn lớp khi bạn nói đã giải quyết được sự cố, đánh dấu câu hỏi là đã được giải quyết.Nhưng tôi có một vài câu hỏi khác: 1- Tại sao tôi không phải thêm Jackson vào classpath cho plugin exec? 2- Exec plugin cần dự án của tôi được biên dịch, vì vậy tôi cần phải chạy mvn biên dịch hoặc gói, phải không? 3- Mã này là nhiệm vụ của tôi, việc thêm thư viện vào đường dẫn lớp của họ có phải là trách nhiệm của họ hay tôi phải làm gì đó về nó? – utdemir