2013-02-05 23 views
5

Khi thiết lập dự án hỗn hợp java7/groovy2 trong maven hoặc gradle, có bất kỳ lý do nào để biên dịch đầu tiên với javac sau đó groovyc qua chỉ cho phép groovyc xử lý tất cả không?Có lý do nào để sử dụng javac trên groovyc trong một dự án mã hỗn hợp không?

Tôi bắt đầu biên dịch chúng một cách riêng biệt và trong các cây riêng của chúng (src/main/java và src/main/groovy) theo cách thực hành tốt nhất. Tuy nhiên, vì java và groovy được sử dụng để giải quyết cùng một vấn đề và được xen kẽ, tôi bây giờ đang hướng tới việc đổ tất cả nguồn của mình vào src/main/groovy và cho phép trình biên dịch groovy xử lý cả tệp .java và .groovy. Điều này dường như làm cho dự án dễ dàng hơn để làm theo khi nhìn vào cây nguồn. Có bất kỳ nhược điểm nào không?

+0

Thú vị, không biết rằng 'groovyc' có khả năng này. Tôi chỉ lo lắng về bytecode mà bạn nhận được khi thực hiện việc này. –

+0

Tôi đã bật một số tài liệu apropos có thể có tại: http://groovy.codehaus.org/Groovy-Eclipse+compiler+plugin+for+Maven và http://groovy.codehaus.org/The+groovyc+Ant+ Nhiệm vụ Tuy nhiên, chúng dường như được thực hiện cụ thể. –

+0

Từ kinh nghiệm với Groovy 1.8 dưới dạng xây dựng Gradle, việc biên dịch các tệp * .java bằng plugin Groovy tạo ra các lớp Java bình thường mà không có các tính năng Groovy được trộn lẫn. (Ví dụ: ExpandoMetaClass không ảnh hưởng đến các lớp Java thuần túy được biên dịch theo cách này). bytecode có thể hơi khác một chút, nhưng chúng tôi đã không nhận thấy bất kỳ sự khác biệt nào khi chúng tôi chuyển từ một bản dựng Java sang bản dựng Groovy và bắt đầu di chuyển mọi thứ sang Groovy khi cần thiết. –

Trả lời

4

Để groovyc xử lý cả hai .java.groovy là tốt. Cách tiếp cận này cũng được sử dụng bởi khung công tác Grails. Grails 2 đặt tất cả các tệp .java dưới các thư mục nguồn groovy, giống như bạn đã làm. Những gì bạn đang làm bây giờ là thực hành tốt nhất.

Dưới đây là một ví dụ: https://github.com/groovy/groovy-core/tree/master/src/main/groovy/io

+0

Cảm ơn ví dụ. –

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