2013-08-15 46 views
7

nền:Maven java biên dịch lỗi không thể truy cập CommonClassA

  • Tôi đang phát triển dự án đa mô-đun Maven.
  • Một trong những mô-đun là mô-đun chung cần thiết cho tất cả các mô-đun khác.
  • Mô-đun này chứa CommonClassA.java.
  • mô-đun chung được biên soạn chính xác.
  • Nó được cài đặt vào kho lưu trữ cục bộ maven đúng cách.
  • Một trong các lớp (Billtype.java) trong mô-đun khác (EmployeeBilling) tham chiếu lớp này (CommonClassA.java).
  • Maven Phụ thuộc cho mô-đun chung được chỉ định đúng trong tệp pom.xml của mô-đun EmployeeBilling.

Vấn đề:

Trong khi biên soạn EmployeeBilling module nó ném

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:2.3.2:compile (default-compile) on project EmployeeBilling: Compilation failure 
[ERROR] \MyWorkspace\Biz\EmployeeBilling\src\main\java\com\employee\Billtype.java:[79,19] error: cannot access CommonClassA 
[ERROR] -> [Help 1]** 

chi tiết Hỗ trợ:

  • phụ thuộc quy định tại EmployeeBilling> pom.xml:

  • Các lớp khác từ mô-đun chung có thể truy cập được do không có lỗi nào được quan sát

  • Không tìm thấy lỗi nào khác.
  • Lớp CommonCLassA thực hiện Serializable
  • Cùng một lỗi xảy ra từ Eclipse cũng như dòng commond
  • Tôi đang sử dụng M2E Plugin

cụ:

  • jdk1.7.0_02
  • Hệ điều hành: Windows 7
  • E clipse JUNO và apache-maven-3.1.0

Cảm ơn bạn trước!

+1

Có thể một câu hỏi ngớ ngẩn, nhưng là lớp 'CommonClassA'' public'? – DB5

+1

Chạy trình biên dịch trong chế độ gỡ lỗi bằng '-X' như:' mvn compile -X' để biết thêm chi tiết. Ngoài ra, bạn có chắc chắn rằng các công cụ sửa đổi truy cập cho lớp làm cho nó hiển thị? –

+0

Tôi đề xuất thêm nguồn của tệp của bạn, vì có vẻ như lỗi biên dịch thông thường. – sorencito

Trả lời

3

Nếu dự án xây dựng đúng cách bằng trình biên dịch eclipse thì nó sẽ hoạt động với Maven.

Vài điều cần kiểm tra nếu nó không làm việc với maven:

  1. thủ kiểm tra trong kho lưu trữ mà jar được cài đặt đúng và nó chứa tập tin lớp học của bạn.
  2. Hãy thử xây dựng dự án bằng cách sử dụng Maven được cài đặt cục bộ thay vì maven trong nhật thực.
  3. Đặt -DskipTest = true trong khi cài đặt bình của bạn, vì nó có thể gây ra vấn đề ở lần.

Nếu các bước này không hoạt động thì hãy cho chúng tôi thấy pom của bạn.

+0

Tất cả, Cảm ơn bạn đã phản hồi! – user2210293

0

Không có thêm thông tin, thật khó để tìm ra nguyên nhân. Nhưng tôi cũng đã gặp vấn đề này ngay bây giờ và sau đó, và có một số điều có thể sai:

  • Bạn đang sử dụng đúng phiên bản JAVA (ở khắp mọi nơi)?
  • ... và java phải PROVIDER? (Oracle, IBM, OpenJDK) Trong trường hợp của tôi nó thường là vấn đề này, đôi khi tôi bị ràng buộc với IBM JDK, mặc dù tôi cố gắng sử dụng Oracle, nơi tôi có thể và điều này đôi khi phá vỡ xây dựng của tôi.
  • VERSION phụ thuộc đúng có được sử dụng không? Nếu bạn phụ thuộc vào nó nhiều lần, và tất cả trong cùng một (thấp hơn root) dept của phụ thuộc, Maven sẽ chỉ "chọn" một phiên bản. Có thể phiên bản đó không tương thích với mã phụ thuộc đặc biệt của bạn, đặc biệt là
  • Kiểm tra bỏ qua đôi khi HOẠT ĐỘNG! Nó có một cái gì đó để làm với giai đoạn maven và nhận được công cụ sẵn sàng để sử dụng nó ở nơi khác.

Chúc may mắn :)

+2

Điều này không cung cấp câu trả lời cho câu hỏi. Khi bạn có đủ [danh tiếng] (http://stackoverflow.com/help/whats-reputation), bạn sẽ có thể [nhận xét về bất kỳ bài đăng nào] (http://stackoverflow.com/help/privileges/comment); thay vào đó, [cung cấp câu trả lời không yêu cầu làm rõ từ người hỏi] (http://meta.stackexchange.com/questions/214173/why-do-i-need-50-reputation-to-comment-what-can- i-do-thay thế). - [Từ đánh giá] (/ review/low-quality-posts/13075824) – Inian

+0

Nếu bạn nói vậy .... Chỉ cần trải nghiệm của tôi, hôm qua tôi đã có lỗi biên dịch cụ thể, và sau khi thay đổi JAVA_HOME từ Oracle JDK sang IBM JDK, tôi đã nhận vấn đề đó đã được sửa. Nhưng nếu bạn nói nó không thì bạn có thể biết tốt hơn nhiều. Câu trả lời của bạn ở đâu, Inian? –

0

tôi đã cùng một vấn đề. Ngay cả phụ thuộc jar cũng có các tệp lớp cần thiết. Cuối cùng tôi đã xóa repo maven cục bộ và khởi động lại bản build. Bây giờ nó làm việc mà không có bất kỳ vấn đề.

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