2011-09-07 33 views
17

Tôi đang sử dụng MyEclipse để phát triển một dự án Java Struts thực sự đơn giản. Mọi thứ đều hoạt động tốt cho đến khi tôi muốn sử dụng lớp StringUtils trong org.apache.commons.lang. Trong MyEclipse tôi nhập khẩu các gói nhưLỗi gói Maven: org.apache.commons-lang không tồn tại (Java)

import org.apache.commons.lang.StringUtils; 

tôi đã thêm file Jar cho commons-lang-2.4 để xây dựng con đường của tôi. Điều này tất cả các công trình tốt và dandy và tôi nhận được Intellisense và không có lỗi trong Eclipse hay bất cứ điều gì. Bây giờ, khi tôi đi để làm một mvn clean package, tôi nhận được một thông báo lỗi rằng

The package org.apache.commons.lang does not exist

Tôi đã kiểm tra trong chiến tranh/file pom.xml của tôi và tôi có nó khai báo là một sự phụ thuộc

<dependency> 
     <groupId>org.apache.httpcomponents</groupId> 
     <artifactId>httpclient</artifactId> 
     <version>4.0.1</version> 
    </dependency> 

    <dependency> 
     <groupId>commons-lang</groupId> 
     <artifactId>commons-lang</artifactId> 
     <version>2.4</version> 
    </dependency> 

</dependencies> 

Từ nghiên cứu của tôi, tôi thấy rằng Maven nên tải xuống gói và cài đặt nó vào kho lưu trữ cục bộ của tôi nếu nó không tồn tại. Tôi đã kiểm tra kho lưu trữ và tệp jar nằm trong đó. Tôi đã tìm thấy tệp jar phải bị hỏng vì vậy tôi đã xóa thư mục commons-lang để tải xuống tệp commons-lang mới. Bây giờ đây là nơi nó thổi tâm trí của tôi, sau khi tôi xóa nó khỏi kho lưu trữ cục bộ và chạy một số mvn clean package, nó đi ra ngoài và tải xuống commons-lang-2.1 .pom và jar (mặc dù pom.xml có 2.4) NHƯNG vẫn cho biết lỗi biên dịch nói rằng gói org.apache.commons.lang không tồn tại.

Tôi chưa sử dụng Maven trong một thời gian rất lâu nên tôi không chắc chắn cách khắc phục vấn đề này. Tui bỏ lỡ điều gì vậy? Tôi có cần thêm phụ thuộc vào tệp pom.xml khác ở đâu đó không?

+0

Đầu tiên, tôi đã xóa commons-lang trong kho lưu trữ và nó hoạt động. – vanduc1102

+0

Không chắc chắn nếu có tập tin tham nhũng hoặc những gì, nhưng sau khi xác nhận phụ thuộc thông qua phương pháp @ TomaszNurkiewicz của tôi đã có thể giải quyết vấn đề này bằng cách xóa các jar từ kho lưu trữ m2 địa phương của tôi khi tôi chạy các bài kiểm tra. – eebbesen

Trả lời

22

Hãy thử chạy các lệnh sau và kiểm tra kết quả:

$ mvn dependency:tree 
$ mvn help:effective-pom 

Hãy tìm commons-lang, có lẽ một cái gì đó sẽ thu hút sự chú ý của bạn như không bao gồm hoặc ghi đè phụ thuộc. Ngoài ra, là:

$ mvn dependency:copy-dependencies 

sao chép commons-lang JAR đến target?

+5

Cảm ơn bạn đã giúp đỡ một bó! Tôi đã thêm một tham chiếu cho commons-lang 2.4 vào tệp jar pom.xml của tôi và bây giờ nó hoạt động. Tôi đóng và mở lại dấu nhắc lệnh trước khi thực hiện các gói sạch và sau đó nó tải về các phiên bản chính xác của các lọ và xây dựng thành công. Có lẽ đã đăng câu hỏi này vài giờ trước. Cảm ơn – Rondel

+0

Lời nhắc lệnh nào chúng ta đang nói đến ở đây? Tôi đang sử dụng netbeans trên windows 8 – RedBirdISU

-6

Trong src/main/java, sẽ có một thư mục .auth. Mở thư mục, vào tập tin AuthController.java và xóa dòng nhập io.swagger. Khởi động lại.

Các vấn đề liên quan