Nhiều người trong số các tính năng của nó được lấy cảm hứng từ các ngôn ngữ như Python, Smalltalk và Ruby, làm cho chúng có sẵn cho các nhà phát triển bằng cách sử dụng một cú pháp Java như thế nào.
Apache Groovy có thể được sử dụng để phát triển các ứng dụng web, viết kịch bản shell, viết trường hợp súc tích, có ý nghĩa, kiểm tra sử dụng tích hợp JUnit Groovy, hoặc tạo mẫu và sản xuất các ứng dụng thực tế sức mạnh công nghiệp.
Groovy làm việc sạch sẽ với tất cả các đối tượng Java hiện có và các thư viện và biên dịch thẳng đến Java bytecode trong hoặc phát triển ứng dụng hoặc chế độ kịch bản
Tính năng .
- xây dựng dựa trên thế mạnh của Java nhưng có nhiều tính năng điện bổ sung lấy cảm hứng từ các ngôn ngữ như Python, Ruby và Smalltalk
- Thêm tính năng lập trình hiện đại để Java
- Hỗ trợ Ngôn ngữ miền cụ thể
- Tăng năng suất phát triển
- đơn giản hoá thử nghiệm
- Biên dịch thẳng đến Java bytecode
là gì mới trong phiên bản này:
- Tính năng mới:
- Kéo dàiBuilder InitializerStrategy để hỗ trợ thêm các chú thích để Constructors
- Cải tiến:
- Set neo cho từng phần trong tài liệu Ascii Groovy.
- typo nhỏ trong tài liệu hướng dẫn cho DefaultGroovyMethods.xor (trái, phải)
- Mã Groovysh hoàn thành là không tương thích với JDK 9 (Jigsaw)
- mảng nguyên thủy thêm join ()
là gì mới trong phiên bản 2.3.0:
- Hỗ trợ chính thức cho chạy Groovy trên JDK 8
- Traits
- New và cải thiện biến đổi AST nhưTailRecursive,Builder vàSortable
- New NIO2 mô-đun với sự hỗ trợ Đường dẫn
- Lightening nhanh chóng phân tích cú pháp JSON và xây dựng
- Đóng tham số kiểu suy luận
- Một mẫu động cơ mới đánh dấu
- Groovysh và GroovyConsole dễ cải tiến sử dụng
- New GroovyAssert tiện ích kiểm tra
- khả năng lớp khácBaseScript
là gì mới trong phiên bản 2.2.2:.
- Hỗ trợ int / int với kiểu int mục tiêu
- Hỗ trợ int / int với bất kỳ loại mục tiêu.
- Hỗ trợ T / V với T, V là một từ (int, short, byte, char, long).
- CóDeletgate bao gồm số dòng trong dấu vết ngăn xếp.
- Cải thiện thông báo lỗi trong trường hợp người dùng định nghĩa một & quot; chạy & quot; phương pháp trong một kịch bản.
là gì mới trong phiên bản 2.1.7:
- Tài liệu giới hạn bình thường của bản đồ theo phong cách sử dụng constructor khi sử dụngImmutable
- DOMCategory: text () không nhận được giá trị nút nếu nó là một phần CDATA
- điều hành quá tải với kiểu trả về
- Null arg gọi không ambiguouseven dù nó nên được
- GroovyDoc không thoát khỏi dấu ngoặc vuông góc trongcode và thẻliteral
- JavaStubGenerator xóa initializers dụ
- Sử dụngCompileStatic trên mã có sử dụng điều hành lây lan trên một kết quả Set ở lỗi biên dịch
- CompileStatic trên lớp bằng cách sử dụng với (Closure) dẫn đến lỗi biên dịch.
được gì mới trong phiên bản 2.1.5:
- Sử dụng phương pháp quá tải với trống / varags thông số không nếu kiểm tra kiểu đang hoạt động
- Ant groovyc ném một NoClassDefFoundError biên soạn một lớp groovy vớiDelegatesTo vàCompileStatic
- META-INF / dịch vụ / org.codehaus.groovy.runtime.ExtensionModule mất tích từ groovy-all.jar
- biên soạnCompileStatic thất bại đôi khi trong gradle build với lỗi nhắn tin tham khảo về phương pháp là không rõ ràng. Không thể lựa chọn giữa
- dòng chảy không đúng cách gõ reset sau khi chi nhánh
là gì mới trong phiên bản 2.1.4:
- Hỗ trợ AST biến trên các lĩnh vực tạo ra bởiField trong kịch bản
- DelegatesTo nênDocumented
là gì mới trong phiên bản 2.0.6 / 2.1.0 RC 1:
- DelegatesTo chú thích: để giúp các IDE và các loại kiểm tra và biên dịch tĩnh để biết rằng cuộc gọi phương thức trong một số phương pháp đóng cửa được giao cho một tham số của phương pháp này -. tốt đẹp cho DSL như trong Gradle xây dựng các tập
- Tuỳ chỉnh kiểu mở rộng kiểm tra:., do đó bạn có thể gõ kiểm tra DSL của bạn tại thời gian biên dịch với logic của riêng bạn
- Hệ thống meta-chú thích: cho phép bạn xác định một chú thích mới thực sự kết hợp một số người khác - đó cũng có nghĩa là có thể áp dụng một vài biến đổi AST với một chú thích tùy chỉnh đơn .
- Custom kịch bản cơ sở lớp học cờ cho các trình biên dịch groovyc:. để thiết lập một lớp kịch bản cơ sở khi biên dịch kịch bản Groovy
- Compiler: để cho phép bạn xác định các tùy chọn cấu hình khác nhau cho các trình biên dịch Groovy, như xác định phần mở rộng tập tin tùy chỉnh, customizers biên soạn khác nhau để áp dụng, vv ..
kịch bản cấu hình
là gì mới trong phiên bản 2.0.4:
- Nó sửa chữa một số vấn đề quan trọng, chúng tôi đã có với Generics với các máy phát điện còn sơ khai, cũng như một số bản sửa lỗi liên quan đến việc kiểm tra kiểu tĩnh và các tính năng biên soạn tĩnh.
là gì mới trong phiên bản 2.0.0:
- Một loại kiểm tra tĩnh để cho các trình biên dịch cho bạn về tính đúng đắn của mã của bạn.
- biên dịch tĩnh để thực hiện những phần quan trọng của ứng dụng của bạn.
- Mô đun, tách JAR Groovy vào lọ tính năng định hướng nhỏ hơn và cho phép bạn tạo ra các mô-đun mở rộng của riêng bạn.
- JDK 7 Dự án Coin cải tiến cú pháp, do đó Groovy là vẫn thân thiện như thể với anh em họ của Java của nó.
- JDK tích hợp 7 Invoke động để được hưởng lợi từ sự hỗ trợ của các JVM cho các ngôn ngữ động.
là gì mới trong phiên bản 1.8.6:
- Groovy 1.8.6 là một hành bảo trì cơ bản, với một vài cải tiến nhỏ và tính năng mới.
là gì mới trong phiên bản 1.8.1:
- Bugs:
- Lỗi trong AntBuilder - DemuxOutputStream nên được sử dụng
- Modifiers về biến cục bộ được bỏ qua
- biên soạn phần thất bại nếu phương pháp Groovy với tham số mảng được gọi là theo phong cách vararg từ Java
- Groovy khiển Icon cho Mac OS X chia
- Chỉ có ngoại lệ gốc trong một kịch bản được in
- ToString không hoạt động với nhiều loại enum
- Có một setter với một giá trị return máy phát điện còn sơ khai để tạo ra nhiều setters và sau đó không biên dịch
- thế hệ vẫn còn sơ khai không thành công với chữ ký chung
- java.lang.ClassFormatError: bất hợp pháp tên lớp & quot; groovy / jmx / builder / gói-info & quot; trong tập tin lớp groovy / jmx / builder / gói-info
- varargs không được hiển thị bởi GroovyDoc
- Java5 configureClassNode không chăm sóc các chú thích tham số
- ClassNode.equals ném ClassCastException cho đối tượng của loại khác
- Cải tiến:
- Cắt chuỗi khi khi tạo MissingMethodException
- hành bậc ba: không xử lý dòng mới trước khi & quot;? & quot; duyên dáng
- Thêm tùy chọn cấu hình kết nối để URL.getText (), URL.newInputStream () và URL.newReader ()
- Thêm maven repo địa phương để mặc định nho cấu hình
- Để hỗ trợ PreparedStatement.addBatch ()
- Khi làm việc với ClassNodes, đôi khi cần phải gọi getFields () trước khi getField () sẽ làm việc (init lười biếng)
- chú thích Force trên các biến được đưa vào biến đổi ast
- groovyConsole nên hỗ trợ các loại tập tin phổ biến hơn: .story, .gpp, và .grunit
- HãyThreadInterrupt tùy chọn trong Groovy console
- Cho phép lớp ngoại lệ tùy chỉnh được ném vàoInterrupt biến đổi AST
- EqualsAndHashCode nên sử dụng GetX () thay vì x khi truy cập vào các thuộc tính
- Enable JsonBuilder để làm việc với các đối tượng đệ quy
- Newify làm việc cho các lớp học được xác định trước, nhưng không phải cho lớp được định nghĩa trong cùng một kịch bản
- Hãy ASTTransformationCustomizer thông số xử lý chú thích
- An đóng cửa IDENTITY có thể được làm sẵn có
- nâng cao nhỏ để cung cấp không-arg phiên bản của DGM grep (), tìm thấy () và FindAll () phương pháp
- 'bao gồm' thuộc tính trong EqualsAndHashCode
- hoàn tab tốt hơn cho GroovyShell
- findResults phản đối / thu / nâng cao bản đồ vá (nhân bản từ findResult)
- Map.inject () không chấp nhận đóng cửa với 3 đối số (thu, key, value), chỉ 2 (collector, Map.Entry)
- JsonBuilder với sự hỗ trợ Writer sẽ tiện dụng
- Đổi tên DGM collectAll để collectNested - giữ nguyên như một bí danh cho thời gian được nhằm ti / loại bỏ cuối cùng
- Groovy nên cung cấp một cách viết tắt cho:. thu thập {} phẳng ()
- Tính năng mới:
- Khi thực hiện các kịch bản dòng lệnh nó nên có thể thực hiện một BEGIN và END một phương pháp (giống như AWK hoặc Perl)
- Thêm một phương pháp cất để sưu tập, vòng lặp, Mảng
- groupby với một danh sách hoặc một mảng đóng cửa vì nó là tham số cho các nhóm lồng nhau
là gì mới trong phiên bản 1.8.0:
- Các biểu cảm động của Groovy, cụ thể để xác định DSL .
- Runtime thực hiện.
- thực hiện đồng thời và song song.
- Thiết kế bởi hợp đồng.
- chức năng phong cách lập trình.
- hỗ trợ JSON Lớp học đầu tiên.
- Biên dịch-thời gian lập trình meta.
- Thêm người giúp đỡ và bổ sung thư viện.
là gì mới trong phiên bản 1.8.0 RC 4:
- ngắn comings trong mã tối ưu hóa mới .
- Một tối nghĩa GEP-3 lỗi.
là gì mới trong phiên bản 1.7.10:
- Lỗi cố định:
- StreamingMarkupBuilder có thể sản xuất XML không hợp lệ.
- Groovy build bị lỗi trong bài kiểm tra - kiểm tra RedundantCastInStubTest không .
- Cải tiến:
- Thêm hỗ trợ cho trọng package-, doc- hoặc lớp mẫu trong lớp học Groovydoc hậu duệ.
là gì mới trong phiên bản 1.7.9:
- Bug:
- GString không bị ép buộc để String khi sử dụng trong ctor Exception lớp con của
- Groovysh 'lịch sử thu hồi' dường như được chọn các mục nhập sai (off 1)
- ExpandoMetaClass.class.metaClass tạo StackOverflow
- LoadConfiguration không tải * .jar
- xử lý không đúng trình tự unicode thoát khi tính toán vị trí nguồn
- kết quả biên soạn Groovy trong cảnh báo trong mã được tạo ra
- Exception java.lang.VerifyError & quot; Mong tìm đối tượng / mảng trên stack & quot; khi trọng một phương pháp notyped với một phương pháp gõ
- máy phát điện Stub không thoát khỏi chuỗi với dấu nháy đơn và đôi hỗn hợp
- lớp bên trong tĩnh không được biên soạn một cách chính xác
- Lỗi với tham số null trong báo cáo chuẩn bị với trình điều khiển DB2 cũ
- nút lớp Scripts 'không có vị trí đúng nguồn
- StreamingMarkupBuilder có thể sản xuất xml không hợp lệ
- Cải tiến:
- Sở hữu đọc accessor định nghĩa thông qua metaclass không hoạt động mà không có danh sách tham số terminator trong đóng cửa
- groovydocs GDK cho String.padXXX không phải là rất rõ ràng [từ ngữ mới kèm theo]
- Typo (danh sách - & # x3e; bản đồ) trong GDK doc nhận xét
- Thực hiện một cách cho các cuộc gọi phương pháp trực tiếp
- Tính năng mới:
- nho không thể loại bỏ và / hoặc cập nhật một & quot; nho & quot;
- Task:
- Viết lại GroovyScriptEngine
lệnh
là gì mới trong phiên bản 1.8.0 RC 1:
- Bug:
- Groovysh 'lịch sử thu hồi' dường như được chọn các mục nhập sai (off 1)
- LoadConfiguration không tải * .jar
- Exception java.lang.VerifyError & quot; Mong tìm đối tượng / mảng trên stack & quot; khi trọng một phương pháp notyped với một phương pháp gõ
- Sử dụng biến log được tạo ra vớiLog hoặc @ Log4j gây ra lỗi biên dịch nếu được sử dụng trong phương pháp tĩnh
- điều khiển phóng từ groovy-all-1.7.6.jar hiện có ivy dependancy
- lớp bên trong tĩnh không được biên soạn một cách chính xác
- & quot; anystring & quot; như byte [] ném java.lang.NumberFormatException: Đối với chuỗi đầu vào: & quot; anystring & quot;
- Cải tiến:
- ThêmThreadInterrupt để an ủi các kịch bản tự động
- thích ClassHelper.make (Class) trên ClassNode mới (Class)
- Tính năng mới:
- nho không thể loại bỏ và / hoặc cập nhật một & quot; nho & quot;
lệnh
là gì mới trong phiên bản 1.8.0 Beta 4:
- đang thực hiện công việc cải tiến hiệu suất trên các tính toán số nguyên nguyên thủy .
- Đóng bó của GPars trong các thư viện của phân phối nhị phân.
- Built-in hỗ trợ JSON với một slurper JSON và một phân tích cú pháp JSON.
được gì mới trong phiên bản 1.8.0 Beta 3:
- biểu thức lệnh mở rộng có thể được sử dụng trên phía bên phải của bài tập.
- Việc chuyển đổiLog AST là tùy chỉnh cho các nhu cầu khai thác gỗ của riêng bạn.
- Bản đồ hiện nay có một phương pháp isCase ().
- Một shortcutGrabResolver vớiGrabResolver (& quot; http: // some / url & quot;) .
- String có thể bị cưỡng chế Enums (& quot; xanh & quot; như Color) .
- Hỗ trợ cho đóng cửa memoization và tấm bạt lò xo.
- ThreadInterrup,ConditionalInterupts vàTimedInterrupt biến đổi AST cho dừng việc thực hiện các script nhúng
- min () / phương pháp trên bản đồ (trên giá trị) max ().
- Khả năng lưu trữ siêu dữ liệu nút trong các nút AST, để sử dụng trong chuyển đổi AST của bạn.
là gì mới trong phiên bản 1.8.0 Beta 2:
- khai báo kiểu Generic bị rò rỉ trên tất cả các tập tin trong một xây dựng.
là gì mới trong phiên bản 1.7.5:
- Bugs:
- Parse của khẳng định không thành công khi xuống dòng giữa 'test' và 'thông điệp'
- Spring / cglib proxy ném ngoại lệ & quot; đối tượng không phải là một thể hiện của tuyên bố lớp & quot;
- Cần cung cấp constructor bằng tay cho enum có & # x3e; 1 trường
- Exponantiation
- GroovyScriptEngine không thể làm mới lớp từ url khác so với tập tin
- Thêm bài kiểm tra / bảo hiểm (cho CLONE biên soạn phần không cho giao diện với các lĩnh vực nguyên thủy)
- Compiler không bận tâm nhiều trường hợp mặc định cho một tuyên bố chuyển đổi
- máy phát điện còn sơ khai trưng bày một phương pháp tổng hợp trong khai nó không nên
- 1.7.4 Groovy sẽ không xây dựng từ nguồn
- Tạo createCallSiteArray là quá lớn đối với JVM
- Phương pháp Curry không thành công khi sử dụng nó trong một chuỗi với IllegalArgumentException
- DefaultGroovyMethods # O duy nhất (n ²) hiệu suất
- DGM # consumeProcessOutput (Process, StringBuffer, StringBuffer) chỉ chấp nhận StringBuffers
- classImmutable, thất bại khi cố gắng xác định các thành viên tĩnh tin
- DGM.eachLine () trả về kết quả sai
- lỗi Compilation trong sử dụng kế thừa và Generics nhau
- ngầm này không được thông qua một cách chính xác từ một lớp bên trong không tĩnh khác
- Round-vấp XML chứa một tham chiếu ký tự xuống dòng trong giá trị của một thuộc tính năng xóa bỏ các tài liệu tham khảo nhân vật
- Response đã cam kết trên Google App Engine khi phục vụ các đốm màu
- JavaStubGenerator không tạo ra các chú thích đúng với tính chất của kiểu mảng
- phạm vi biến đổi của BlockStatement bị mất bên trong ReturnAdder
- ResourceBundle 1.7-beta-1
- thật Groovy của groovy.util.slurpersupport.NoChildren phải là sai lầm
- ClassFormatError mở rộng giao diện chung mà có một phương pháp với một đối số mảng trở về kiểu chung chung
- lỗi FindBugs cho Integer mới () vs Integer.valueOf () như các cuộc gọi
- unaryMinus không cho ngắn và Byte
- Truy cập vào các thuộc tính bên ngoài / các phương pháp từ các lớp bên trong kết quả trong NPE
- tham khảo không đủ tiêu chuẩn trong phân lớp phương pháp tĩnh cho siêu trường tĩnh không biên dịch
- Cải tiến:
- findResult và findAllResults phản đối / bộ sưu tập / đồ vá nâng cao
- Khẳng định một cuộc gọi đóng cửa nên trông giống như
- Cải thiện hiệu suất và loại bộ nhớ
- Thêm nhiều phần mở rộng tập tin hỗ trợ trong trình biên dịch
- Tính năng mới:
- Cung cấp một cơ chế cho toàn cầu AST Transformations để có thể xác định một tập tin mở rộng cho các nguồn Groovy họ nên được áp dụng cho
- Cung cấp một cơ sở hạ tầng còn sơ khai thử nghiệm máy phát điện
- Thêm ràng buộc tổng hợp để JList
là gì mới trong phiên bản 1.7.4:.
- Đóng cửa bây giờ & quot được; callable & quot;
- biến đổi AST mới.
- Một cú pháp bổ sung cho chuỗi, với $ / ... / $, để phá vỡ khác nhau thoát trường hợp góc, ví dụ như $ / một b & # x5c /; c $$ $ // $
- Các phương pháp mới GDK như Map.countBy {}, {} Map.collectEntries, Date.putAt () (điều hành subscript), Date.updated ().
- Các phương pháp mới String như tr (), stripMargin (), stripIndent (), (un) mở rộng (),
- Phương pháp withDefault Bản đồ của {},
- ncury Closure () và rcury ()
là gì mới trong phiên bản 1.7.3:
- biến đổi AST mới, nhưSynchronized (sử dụng an toàn hơn đồng bộ hóa) vàInheritConstructors (tốt đẹp cho thừa kế nhà xây dựng Exception)
- đầu tiên () / cuối cùng () / con () / đuôi () phương pháp trên các mảng cho phù hợp với danh mục (mảng nguyên thủy không bảo hiểm chưa)
- Một số cải tiến xử lý BigDecimal cho kết quả tốt hơn vào một số trường hợp cạnh tính toán
- Bản cập nhật của nhập khẩu tĩnh cho các thuộc tính
- Phương pháp mới về ngày vì vậy bạn có thể làm cal [DAY_OF_WEEK] = thứ hai
- phương pháp xử lý New String, giống như hoa (), tr UNIX của (), mở rộng () / unexpand (), cũng như stripIndent () và stripMargin ()
- Một biểu tượng tốt đẹp cho Groovy Console Swing Groovy trên Mac OS X
Bình luận không