2013-02-09 31 views
14

Tôi phát triển dự án của mình trong Eclipse với bố cục thư mục Maven chuẩn. Các nguồn nằm trong thư mục src/main/java/com/mycompany. Và nó được yêu cầu đặt các lớp nguồn của tôi trong gói main.java.com.mycompany. Khi tôi xây dựng thực thi jar-file, tôi phải xác định các lớp học chính trong MANIFEST.MF như:Tên gói không có main.java trong maven

Main-Class: main.java.com.mycompany.MyMainClass 

Nhưng tôi thấy trong rất nhiều ví dụ (như cấu hình các thuộc tính mainClass trong maven-lắp ráp-plugin hoặc maven-jar-plugin) tên lớp được chỉ định không có phần main.java. Tôi chỉ muốn có

Main-Class: com.mycompany.MyMainClass 

Tôi không thể tìm ra cách tôi có thể đạt được điều này vì tôi hoàn toàn mới làm quen với Maven.

+0

Gói main.java đã cho không liên quan đến vị trí src/main/java. Nếu điều này là cần thiết hơn cấu hình của bạn trong Eclipse (m2e) vv là sai. – khmarbaise

+0

Tôi chưa từng sử dụng bất kỳ trình bổ sung nào cho Eclipse (m2e) hoặc cho Maven như maven-eclipse, vừa xây dựng các dự án với mvn từ dòng lệnh. – Grade

Trả lời

35

Bố cục thư mục mặc định của Maven khác với bố cục Eclipse sử dụng khi bạn tạo một dự án Java mới.

Nó thực sự khá đơn giản. Khi bạn tạo một dự án Java mới, Eclipse tạo một thư mục có tên 'src' trên hệ thống tệp của bạn, nơi bạn nên đặt mã nguồn của mình. Ngoài ra, Eclipse cấu hình thư mục này như là một 'thư mục nguồn'. Mỗi thư mục bạn tạo trong thư mục này sẽ đại diện cho một gói Java.

Điều Maven muốn có một chút khác biệt. Maven thích bạn có thư mục 'src/main/java' với thư mục con 'java' được định cấu hình là thư mục nguồn. Do đó, tất cả các thư mục được tạo trong thư mục java này sẽ đại diện cho các gói Java.

Bạn có thể quản lý thư mục nguồn của bạn trong Eclipse từ thuộc tính dự án của bạn. Nhấp chuột phải vào dự án của bạn, chọn 'xây dựng đường dẫn -> cấu hình đường dẫn xây dựng'. Trong cửa sổ bật lên mở tab 'nguồn'. Bây giờ, loại bỏ 'src' như một thư mục nguồn và thay thế nó bằng 'src/main/java'.

Bây giờ Eclipse sẽ nhận ra các gói của bạn là com.mycompany thay vì main.java.com.mycompany.

Tôi luôn sử dụng plugin maven-eclipse để tạo các dự án eclipse và các tệp lớp đường dẫn từ dòng commmand. Tôi không phải là một fan hâm mộ lớn của m2e.

2

Sử dụng m2e nếu bạn đang sử dụng nhật thực. Không gian làm việc nhật thực được cấu hình không chính xác cho một dự án maven

3

Bạn cũng có thể thử cập nhật dự án maven. Nhấp chuột phải vào dự án> Maven> Cập nhật Maven Project.

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