Tôi có một tình huống mà một số mã groovy của tôi tham chiếu đến các tệp java của tôi, nhưng tôi cũng có các tệp java khác nhau tham chiếu đến cùng một mã groovy. Khi cố gắng biên dịch trong maven, tôi cần biên dịch phần mềm groovy trước hoặc sau java, và điều đó sẽ không thực sự hoạt động vì mã groovy phụ thuộc vào một số tệp java và các tệp java khác nhau phụ thuộc vào mã groovy. Có cách nào để xử lý loại phụ thuộc này không?maven biên dịch groovy
Trả lời
Bạn sẽ có thể biên dịch mã của mình bằng cách thêm plugin gmaven vào tệp pom.xml maven của bạn. Nó tạo ra các đoạn mã Java của mã groovy của bạn để xử lý kiểu tham chiếu liên ngôn ngữ mà bạn đang xử lý. Tôi sử dụng nó khá nhiều và nó hoạt động rất tốt.
Bạn có thể phân vùng mã của mình thành các lớp và có các lớp thấp hơn gọi các lớp trên nhưng không bao giờ ngược lại. Ví dụ, trong một ứng dụng Web, bạn có thể có một lớp xem, một lớp dịch vụ và một lớp kiên trì. Lớp xem gọi lớp dịch vụ và tầng dịch vụ gọi lớp kiên trì, nhưng lớp kiên trì sẽ không bao giờ gọi lớp dịch vụ hoặc lớp xem. Nếu bạn muốn mã groovy/java tồn tại trong cùng một lớp thì hãy chắc chắn rằng một cuộc gọi khác nhưng chúng không gọi cả hai. Điểm mấu chốt là bạn nên tránh phụ thuộc hai hướng.
Có, chỉ cần sử dụng GMaven. Vì nó là một trình biên dịch chung, nó sẽ tự động quản lý java của bạn để thu hút và hấp dẫn đến các phụ thuộc java.
Tóm lại, bạn sẽ cần phải:
- bao gồm
gmaven-plugin
trongpom.xml
của bạn; - giữ các lớp học hấp dẫn của bạn dưới
src/main/groovy
hoặcsrc/test/groovy
; - liên kết plugin gmaven với các giai đoạn vòng đời có liên quan.
Để biết thêm chi tiết, xem building groovy projects.
- 1. Lỗi biên dịch Maven
- 2. Maven Groovy và Java + Lombok
- 3. Maven bỏ qua biên dịch
- 4. Biên dịch Maven: gói không tồn tại
- 5. Eclipse Helios + maven m2e + Groovy == FAIL
- 6. Groovy AST - Thêm chú thích khi biên dịch
- 7. Dự án Javafx không biên dịch với maven
- 8. Thêm lớp java đã biên dịch vào dự án maven
- 9. Maven java biên dịch lỗi không thể truy cập CommonClassA
- 10. Làm thế nào để biên dịch phụ thuộc vào maven?
- 11. lỗi biên dịch maven: các lớp trùng lặp
- 12. Làm thế nào để biên dịch một tệp với maven?
- 13. GWT maven thư mục đầu ra trình biên dịch
- 14. biên dịch xuống một phiên bản - nhật thực, maven
- 15. Tìm hiểu trình biên dịch Maven nào sử dụng
- 16. Maven biên dịch với nhiều thư mục src
- 17. Lỗi biên dịch maven sai (hoạt động trong nhật thực)
- 18. Giải pháp khắc phục lỗi biên dịch javac trong maven
- 19. IntelliJ + groovy DSL: Làm cách nào để loại trừ các tệp được biên dịch bởi plugin groovy?
- 20. Hiệu suất biên dịch mã bằng biên dịch biên dịch
- 21. Trình biên dịch/trình biên dịch/trình biên dịch C++
- 22. Làm thế nào để cho phép biên dịch thời gian biên dịch với Java 7 và maven
- 23. tại sao mã này biên dịch với trình biên dịch eclipse nhưng không phải với javac (maven)
- 24. Eclipse không biên dịch các kịch bản Groovy vào các lớp java tại thời gian chạy
- 25. Có thể biên dịch mã groovy để chạy trong JRE không?
- 26. Lỗi biên dịch một dự án sử dụng Groovy @Grab chú thích
- 27. Biên dịch và sử dụng các lớp Groovy từ Java lúc chạy?
- 28. Tại sao tôi nhận được lỗi biên dịch "org/codehaus/groovy/control/CompilationFailedException"?
- 29. Trình biên dịch biên dịch trong C#
- 30. maven biên soạn - Lỗi log4j
-1 Có trình biên dịch Groovy-Java chung. –
Đó là sự thật nhưng có phụ thuộc hai hướng có thể dẫn đến mã phức tạp và ít bảo trì không cần thiết. Trong bối cảnh của câu hỏi này, tôi đồng ý rằng việc sử dụng GMaven là câu trả lời đúng nhưng tôi vẫn sẽ cấu trúc lại mã để loại bỏ, hoặc ít nhất là giảm các mối quan hệ hai hướng. – rich