2015-04-10 17 views
31

Tôi có một dự án java đa mô đun được xây dựng với Maven mà tôi muốn tạo javadocs với javadoc:aggregate. Cấu trúc dự án trông giống như:Lombok Maven javadoc: báo cáo tổng hợp với các nguồn được tạo

parent 
├─lomboklib 
└─other 

Tôi cũng đang sử dụng Project Lombok để tạo một số phương pháp trong dự án. Tôi đã cấu hình thành công nó để làm việc với các mô-đun đơn bằng cách chạy trước tiên delombok với Lombok maven plugin. Đối với các module đơn (lomboklib), điều này sẽ tạo ra mã nguồn trong

target/generated-sources/delombok 

mà sau đó được xử lý bởi maven-javadoc-pluginjavadoc công cụ. Điều này ban đầu được giải quyết trong This SO question.

Làm cách nào để định cấu hình báo cáo javadoc:aggregate cũng sử dụng các nguồn được tạo?

Tôi đã đặt một hộp cát của sự cố với tất cả các định nghĩa mô-đun trong Github. Lý tưởng nhất, tôi sẽ có thể chạy

mvn clean compile javadoc:aggregate 

Trong dự án chính, có toàn bộ việc biên dịch và nhận javadocs cho toàn bộ dự án.

Trả lời

2

Tôi tạo ra một workaround build cấu hình mà sẽ tạo ra javadocs tổng hợp từ các nguồn tạo ra, mặc dù các chuỗi cuộc gọi có hai bước sau:

mvn package 
mvn -N pre-site 

Cấu hình xây dựng hiện nay được công bố trên Github. Phiên bản hiện tại chỉ hỗ trợ một cây dự án có độ sâu một, nhưng tất nhiên có thể được sửa đổi. Nó hoạt động bằng cách thu thập các phụ thuộc theo thư mục cha mẹ target và sau đó chạy tập lệnh Ant được bao gồm.

Cuối cùng, nếu chạy dưới Jenkins, mvn -N pre-site có thể được gọi trong cùng một công việc qua Thực hiện vỏ bước đăng. Xuất bản các javadocs trong phiên bản Jenkins của chúng tôi được yêu cầu bằng cách sử dụng hành động sau khi xây dựng "Sử dụng các nhà xuất bản từ một dự án khác".

1

Tôi đã tải xuống dự án mẫu từ Github để tạo lại sự cố của bạn và phát hiện ra rằng đó là do lombok-maven-plugin được định cấu hình không cần thiết ở cấp cao nhất - chỉ cần cho mô-đun chứa mã lombok. Chỉ cần xóa cấu hình đó, javadoc:aggregate hoạt động như mong đợi.

0

Tôi đang gặp vấn đề tương tự này và tôi đã có thể làm việc xung quanh nó bằng cách tham chiếu đường dẫn nguồn trực tiếp từ dự án mẹ.

Hãy thử cấu hình này cho plugin maven-javadoc mẹ của bạn.

<configuration> 
    <sourcepath> 
     lomboklib/target/generated-sources/delombok; 
     other/target/generated-sources/delombok 
    </sourcepath> 
</configuration> 

Nó thực sự không lý tưởng. Nó cảm thấy như một chút của một hack.

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