Tôi đang làm việc trên một dự án web Java sử dụng Liquibase groovy DSL để quản lý các thay đổi DB. Vì lợi ích của chủ đề này, nó có thể là bất kỳ thư viện bên thứ ba nào khác sử dụng các tệp *.groovy
làm nguồn. Dự án được xây dựng với độ ưu việt. Trong một trong các mô-đun của tôi (dao-base
) trong thư mục src/main/resources
Tôi có tệp groovy (changelog01.groovy, master_changelog.groovy
v.v.). các tệp này sẽ được nạp bởi bình chứa chất lỏng trong thời gian chạy.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?
Bây giờ khi tôi cố gắng làm cho các dự án trong IntelliJ nó mang lại cho các thông báo lỗi sau:
Groovyc: Không thể biên dịch file Groovy: không có thư viện Groovy được định nghĩa cho module 'dao-base.
Tôi hiểu rằng plugin groovy phát hiện các tệp *.groovy
, cố gắng biên dịch chúng và không đáng ngạc nhiên là không thành công. đây là những tập tin DSL groovy mà nên được nạp chỉ bởi bộ phân tích cú pháp liquibase bên thứ 3 và tôi không cần plugin groovy của IntelliJ để thử và biên dịch chúng.
Tôi đã quản lý để đưa ra 2 giải pháp một phần: 1. tắt plugin groovy trong intellij. Vấn đề với giải pháp này là plugin gradle phụ thuộc vào plugin groovy và do đó sẽ tự động bị tắt khi vô hiệu hóa plugin groovy. Tôi cần plugin gradle được bật. 2. không bao gồm thư mục src/main/resources
trong cài đặt dự án -> mô-đun ->dao-base
(mô đun của tôi) -> tab nguồn. Vấn đề với giải pháp này là khi tôi xây dựng dự án và triển khai lên tomcat, các tệp từ thư mục tài nguyên bị thiếu và vì các tệp trong nó được yêu cầu trong thời gian chạy, tôi nhận được tệp không tìm thấy ngoại lệ khi tải chiến tranh.
Tôi đã hy vọng một người nào đó có thể đưa ra giải pháp tốt hơn cho vấn đề này.
Cảm ơn. Điều này giải quyết được vấn đề của tôi. Nó đơn giản nhưng bằng cách nào đó tôi đã bỏ qua điều này. –