2010-11-08 32 views
13

Tôi sử dụng Apache Thrift để tạo mã trong target/generated-sources.maven không thể thêm tệp trong các nguồn được tạo cho giai đoạn biên dịch

Trình biên dịch tiết kiệm tạo ra một thư mục có tên gen-java chứa tất cả mã Java. Khi tôi thực thi mvn compile, mã được tạo chính xác trong target/generated-source/gen-java, nhưng trong giai đoạn biên dịch, nó không thể tìm thấy các lớp được xác định trong gen-java.

Theo hiểu biết của tôi, Maven 2 tự động thêm nguồn được tạo, đúng không?

Và điều gì sẽ xảy ra nếu mã thử nghiệm của tôi cũng phụ thuộc vào generated-sources, tôi có phải chỉ định trình biên dịch theo cách thủ công không?

+0

bản sao có thể có của [Tại sao Maven bỏ qua các hành động tạo nguồn tùy chỉnh của tôi?] (Http://stackoverflow.com/questions/18721684/why-is-maven-skipping-over-my-custom-generate-sources -executions) – ArtB

+0

[Tại sao Maven bỏ qua các tùy chọn tạo nguồn tùy chỉnh của tôi?] (http://stackoverflow.com/q/18721684/1523648) là về lỗi cấu hình của plugin antrun, câu hỏi này không phải. – oberlies

Trả lời

16

Theo hiểu biết của tôi, maven 2 tự động thêm nguồn được tạo, đúng không?

Không có gì tự động, plugins tạo mã nguồn thường xử lý đó bằng cách thêm thư mục sản lượng của họ (cái gì đó như target/generated-sources/<tool> theo quy ước) như thư mục nguồn sang POM để nó sẽ được đưa vào sau trong giai đoạn biên dịch.

Một số plugin ít được triển khai tốt hơn không làm điều đó cho bạn và bạn phải tự thêm thư mục, ví dụ: sử dụng Build Helper Maven Plugin.

Và vì bạn không cung cấp bất kỳ đoạn mã POM nào, bất kỳ liên kết nào, tôi không thể nói gì thêm.

Và điều gì sẽ xảy ra nếu mã thử nghiệm của tôi cũng phụ thuộc vào nguồn được tạo, tôi có phải chỉ định trình biên dịch theo cách thủ công không?

Như tôi đã nói, các nguồn được tạo thường được thêm vào dưới dạng thư mục nguồn và được biên dịch và do đó có sẵn trên đường dẫn thử nghiệm mà không cần phải làm gì cả.

+1

_plugins tạo mã nguồn thường xử lý bằng cách thêm thư mục đầu ra của chúng làm thư mục nguồn vào POM_ Bạn có ví dụ về cấu hình như vậy không? Tôi đang cố gắng tạo ra một plugin "chưa được triển khai tốt" không tạo ra mã nhưng tôi không thể tìm ra cách tốt nhất để đưa thư mục đầu ra mà không phải cấu hình nó vào phía "phía khách". –

+0

@ RémiM Có lẽ [câu trả lời này] (http://stackoverflow.com/a/19682602/254477) giúp? – ArtB

+1

@Pascal Điều gì về '/ target/generated-sources /' chính nó, điều đó cần phải được bổ sung cũng như để xây dựng đường dẫn? – ArtB

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