Muitas de suas características são inspiradas por linguagens como Python, Smalltalk e Ruby, tornando-os disponíveis para desenvolvedores que usam uma sintaxe Java-like.
Apache Groovy pode ser usado para o desenvolvimento de aplicações web, escrever scripts shell, escrevendo casos conciso, significativo, teste JUnit usando a integração do Groovy, ou prototipagem e produção de aplicações de força industriais reais.
Groovy funciona corretamente com todos os objetos Java e bibliotecas existentes e compila diretamente para bytecode Java em qualquer desenvolvimento de aplicativos ou o modo de script
Recursos :.
- constrói sobre os pontos fortes do Java, mas tem características de potência adicionais inspiradas por linguagens como Python, Ruby e Smalltalk
- Adiciona recursos de programação modernas para Java
- Suporta Domain Specific Languages
- Aumenta a produtividade do desenvolvedor
- simplifica os testes
- Compila diretamente para bytecode Java
O que é novo nesta versão:
- Novo recurso:
- EstenderBuilder InitializerStrategy para apoiar adicionando a anotação de Construtores
- Melhorias:
- Definir âncoras para cada seção em docs Ascii Groovy.
- typo Minor na documentação para DefaultGroovyMethods.xor (esquerda, direita)
- código Groovysh conclusão não é compatível com JDK 9 (Jigsaw)
- array primitivo Adicionado join ()
O que é novo na versão 2.3.0:
- O suporte oficial para a execução de Groovy no JDK 8
- Traços
- novo e melhorado transformações AST comoTailRecursive,Builder eSortable
- módulo New NIO2 com o apoio Path
- Lightening análise JSON rápido e construção
- Encerramento tipo de parâmetro inferência
- Um novo modelo de motor marcação
- Groovysh e GroovyConsole facilidade de melhorias de uso
- New GroovyAssert utilitário de teste
- capacidades de classe maisBaseScript
O que é novo na versão 2.2.2:.
- Suporte int / int com o tipo int objetivo
- Suporte int / int com qualquer tipo de meta.
- Suporte T / V com T, V sendo um de (int, short, byte, char, long).
- TemDeletgate incluir o número da linha em rastreamentos de pilha.
- Melhorar a mensagem de erro no caso de o usuário define um & quot; executar & quot; método em um script.
O que é novo na versão 2.1.7:
- limitação do documento de uso normal construtor-estilo do mapa quando usandoImmutable
- DOMCategory: texto () não obter valor do nó se é uma seção CDATA
- operador Sobrecarregado com o tipo de retorno
- Null arg chamada não ambiguouseven embora deva ser
- GroovyDoc não escapa colchetes emcode e tagsliteral
- JavaStubGenerator cancela inicializadores de instância
- UsandoCompileStatic no código que usa operador de propagação em um conjunto resulta em erro de compilação
- CompileStatic em classe usando com (Encerramento) leva a erro de compilação.
O que é novo na versão 2.1.5:
- O uso de métodos sobrecarregados com vazio / varags parâmetros falhar se a verificação de tipo está ativo
- Ant groovyc lança um NoClassDefFoundError compilar uma classe groovy comDelegatesTo eCompileStatic
- META-INF / serviços / org.codehaus.groovy.runtime.ExtensionModule faltando Groovy-all.jar
- compilaçãoCompileStatic falhar algumas vezes na compilação Gradle com mensagem de erro de referência para o método é ambíguo. Não é possível escolher entre
- fluxo incorreto de digitação reset após se ramo
O que é novo na versão 2.1.4:
- AST Apoio transforma no campo gerado porField em scripts
- DelegatesTo deve serDocumented
O que é novo na versão 2.0.6 / 2.1.0 RC 1:
- anotaçãoDelegatesTo: para ajudar IDEs eo verificador de tipo estático e compilador saber que chamadas de método em um fechamento de parâmetro do método são delegadas a um outro parâmetro do método -. agradável para DSLs como em Gradle construir arquivos
- tipo personalizado extensões de verificação:. assim você pode digitar verificar os seus DSLs em tempo de compilação com sua própria lógica
- Um sistema de meta-anotação: o que lhe permite definir uma nova anotação, na verdade, a combinação de vários outros - o que também significa ser capaz de aplicar várias transformações AST com uma única anotação feita sob encomenda .
- Custom bandeira classe base do script para o compilador groovyc:. para definir uma classe base do script quando compilar os scripts Groovy
- Compiler: para deixá-lo definir várias opções de configuração para o compilador Groovy, como especificar extensões de arquivo personalizado, vários customizers compilação de aplicar, etc ..
script de configuração
O que é novo na versão 2.0.4:
- Ele corrige alguns problemas importantes que tivemos com genéricos com o gerador de stub, bem como várias correções relacionadas com a verificação de tipo estático e recursos de compilação estáticas.
O que é novo na versão 2.0.0:
- Um verificador de tipo estático para deixar o compilador dizer sobre a correção do seu código.
- compilação estática para o desempenho das partes críticas de sua aplicação.
- A modularidade, dividindo a JAR Groovy em JARs orientada-metragens menores e permitindo que você crie seus próprios módulos de extensão.
- JDK 7 Projeto Coin aprimoramentos de sintaxe, de modo que Groovy ainda é o mais amigável possível com seu primo Java.
- JDK 7 Invoke integração dinâmica para beneficiar do apoio do JVM para linguagens dinâmicas.
O que é novo na versão 1.8.6:
- Groovy 1.8.6 é uma versão de manutenção, essencialmente, com algumas pequenas melhorias e novos recursos.
O que é novo na versão 1.8.1:
- Bugs:
- Bug em AntBuilder - DemuxOutputStream deve ser usado
- Os modificadores de variáveis locais são ignorados
- compilação misto não se método Groovy com parâmetro de matriz é chamado no estilo vararg de Java
- Ícone Groovy Console para Mac OS X quebrado
- Somente a exceção raiz em um script é impresso
- ToString não funciona para tipos de enum
- Ter um setter com um valor de retorno faz com que o gerador de stub para gerar vários setters e, em seguida, deixar de compilar
- geração Stub falha com assinaturas genéricas
- java.lang.ClassFormatError: Ilegal nome da classe & quot; Groovy / jmx / construtor / package-info & quot; no arquivo de classe Groovy / jmx / construtor / package-info
- VarArgs não são exibidas por GroovyDoc
- Java5 configureClassNode não cuidar de anotações de parâmetros
- ClassNode.equals joga ClassCastException para objeto de outro tipo
- Melhorias:
- truncar cadeia quando ao gerar MissingMethodException
- operador ternário: não manipula nova linha antes de & quot;:? & quot; graciosamente
- Adicione as opções de configuração de conexão para URL.getText (), URL.newInputStream () e URL.newReader ()
- Adicionar repo Maven para o padrão de configuração de uva
- Para apoiar PreparedStatement.addBatch ()
- Ao trabalhar com ClassNodes, às vezes é preciso chamar GetFields () antes getField () funcionará (init preguiçoso)
- Força anotações sobre as variáveis a serem incluídas em transformações AST
- groovyConsole deve apoiar tipos mais comuns de arquivo: .story, .gpp e .grunit
- FaçaThreadInterrupt opcional em Groovy consola
- Permitir classe de exceção personalizada para ser jogado em transformações ASTInterrupt
- EqualsAndHashCode deve usar getX () em vez de x quando acessar as propriedades
- Ativar JsonBuilder para trabalhar com objetos de forma recursiva
- Newify funciona para classes pré-definidas, mas não para classes definidas no mesmo script
- Verifique ASTTransformationCustomizer parâmetros de anotação alça
- Um fechamento identidade poderia ser disponibilizado
- Minor realce para fornecer não-arg versões do DGM grep (), find () e findAll () métodos
- 'inclui' atributo no EqualsAndHashCode
- completação melhor guia para GroovyShell
- FindResults objeto / coleção / map aprimoramento patch (clonado a partir de findResult)
- Map.inject () não aceita o encerramento com 3 argumentos (coletor, chave, valor), apenas 2 (coletor, Map.Entry)
- JsonBuilder com o apoio escritor seria útil
- Renomear DGM collectAll para collectNested - manter original como um alias para o momento com vista a depreciativo / removendo eventualmente,
- Groovy deve fornecer um atalho para:. recolher {} achatar ()
- Novos recursos:
- Ao executar scripts de linha de comando, deve ser possível para executar um BEGIN e um método de END (semelhante a AWK ou Perl)
- Adicionar um método take a coleções, Iterators, Arrays
- groupBy com uma lista ou uma matriz de encerramentos, como é parâmetro para agrupamento aninhado
O que é novo na versão 1.8.0:
- A expressividade dinâmica do Groovy, especificamente para a definição de DSLs .
- desempenho Runtime.
- A execução concorrente e paralelo.
- Projeto por contrato.
- estilo de programação funcional.
- apoio JSON de primeira classe.
- em tempo de compilação meta programação.
- Mais ajudantes e adições de bibliotecas.
O que é novo na versão 1.8.0 RC 4:
- Curtas-vindas no novo código de otimização .
- Um obscuro GEP-3 bug.
O que é novo na versão 1.7.10:
- erros corrigidos:
- StreamingMarkupBuilder pode produzir XML inválido.
- compilação Groovy falhar nos testes - teste RedundantCastInStubTest falha .
- Melhorias:
- Adicionar suporte para substituir pacote-, doc- ou de classe-modelos das classes Groovydoc descendentes.
O que é novo na versão 1.7.9:
- Erro:
- não gstring coagido a corda quando usado em ctor exceção de subclasse
- Groovysh "história recordação" parece estar ganhando a entrada errada (desativada por 1)
- ExpandoMetaClass.class.metaClass cria StackOverflow
- LoadConfiguration não carrega * .jar
- O manuseio incorreto de seqüências de escape unicode ao calcular locais de origem
- Groovy compilação resulta em avisos em código gerado
- Exceção java.lang.VerifyError & quot; Com a expectativa de encontrar objeto / array na pilha & quot; quando substituir um método notyped com um método de digitado
- gerador Stub não escapar strings com aspas simples e duplas mistas
- classes internas estáticas não estão sendo compilados corretamente
- Erro com o parâmetro nulo em declarações preparadas com driver antigo DB2
- nós classe 'Scripts não têm posições de origem correto
- StreamingMarkupBuilder pode produzir xml inválido
- Melhoria:
- Propriedade ler acessor definido via metaclasse não funciona sem lista de parâmetros terminator no fechamento
- groovydocs GDK para String.padXXX não são muito claras [nova redacção anexo]
- Typo (listas - & # x3e; mapas) em GDK doc comentário
- Implementar uma forma de método direto chama
- Novo recurso:
- uva não pode remover e / ou atualizar um & quot; uva & quot;
- Task:
- Reescreva GroovyScriptEngine
comando
O que é novo na versão 1.8.0 RC 1:
- Erro:
- Groovysh "história recordação" parece estar ganhando a entrada errada (desativada por 1)
- LoadConfiguration não carrega * .jar
- Exceção java.lang.VerifyError & quot; Com a expectativa de encontrar objeto / array na pilha & quot; quando substituir um método notyped com um método de digitado
- Usar variável de registo criado comLog ou @ Log4j causa de erro do compilador se usado em método estático
- Console lançado a partir de Groovy-all-1.7.6.jar tem agora hera dependência
- classes internas estáticas não estão sendo compilados corretamente
- & quot; anystring & quot; como byte [] joga java.lang.NumberFormatException: Para string de entrada: & quot; anystring & quot;
- Melhoria:
- AdicionarThreadInterrupt para consolar os programas automaticamente
- Prefere ClassHelper.make (Classe) sobre novo ClassNode (classe)
- Novo recurso:
- uva não pode remover e / ou atualizar um & quot; uva & quot;
comando
O que é novo na versão 1.8.0 Beta 4:
- Em curso trabalhos de melhoria de desempenho em cálculos inteiros primitivas .
- Agrupamento de GPars nas bibliotecas da distribuição binário.
- O suporte integrado JSON com um sugador JSON e um analisador JSON.
O que é novo na versão 1.8.0 Beta 3:
- expressões comando estendidas podem ser utilizados na lado direito de atribuições.
- A transformaçãoLog AST é customizável para suas próprias necessidades de registro.
- Mapa agora tem um método isCase ().
- Um atalhoGrabResolver comGrabResolver (& quot; http: // some / url & quot;) .
- Cordas pode ser coagido a Enums (& quot; azul & quot; como cores) .
- Suporte para memoization encerramento e trampolim.
- ThreadInterrup,ConditionalInterupts e transformações ASTTimedInterrupt para parar a execução de scripts incorporados
- min () / max () métodos nos mapas (em valores).
- Capacidade para armazenar metadados nó em nós AST, para uso em suas transformações AST.
O que é novo na versão 1.8.0 Beta 2:
- declarações de tipos genéricos vazando em todos os arquivos em uma compilação.
O que é novo na versão 1.7.5:
- Bugs:
- Parse de assert falha quando nova linha entre "teste" e "mensagem"
- Spring proxies / cglib jogar exceção & quot; objeto não é uma instância da classe declarando & quot;
- Necessidade de fornecer construtor artesanal para enum ter & # x3e; um campo
- Exponantiation
- GroovyScriptEngine não pode atualizar classe de URL diferente do arquivo
- Adicionar test / cobertura (para CLONE de compilação misto não nas interfaces com campos primitivos)
- Compiler não se importa de múltiplos casos padrão para uma instrução switch
- gerador Stub exibe um método sintético no tocos não deveria
- 1.7.4 Groovy não vai construir a partir da fonte
- Criação createCallSiteArray é grande demais para JVM
- método Curry falhar quando usá-lo em uma cadeia com IllegalArgumentException
- DefaultGroovyMethods # única O (n²) desempenho
- DGM # consumeProcessOutput (Processo, StringBuffer, StringBuffer) aceita apenas StringBuffers
- classeImmutable, falha ao tentar definir membros estáticos privados
- DGM.eachLine () retorna resultado errado
- Erro de Compilação em usar a herança e os genéricos juntos
- implícita esta deixa de ter passado corretamente a partir de uma classe interna não-estática para outra
- Round-trip XML que contém uma referência caractere de nova linha no valor de um atributo remove a referência de caráter
- Response já cometido no Google App Engine ao servir blobs
- JavaStubGenerator não gera corretamente anotações com propriedades do tipo array
- O escopo de variáveis de BlockStatement ficar perdido dentro ReturnAdder
- ResourceBundle em 1,7-beta-1
- verdade Groovy de groovy.util.slurpersupport.NoChildren deve ser false
- ClassFormatError estendendo interface genérica que tem um método com um argumento de matriz retornando o tipo genérico
- erros FindBugs para new Integer () vs. Integer.valueOf () como chamadas
- unaryMinus falhar por Curto e Byte
- Acessando propriedades exteriores / métodos de categorias de resultados internos em NPE
- referência Inqualificável no método estático subclasse a superclasse campos estáticos falha na compilação
- Melhorias:
- findResult e findAllResults objeto / coleção / map remendo do realce
- Assert uma chamada de encerramento deve ser semelhante
- Melhorar o desempenho Categoria e Memória
- Adicione múltiplo suporte extensões de arquivo no compilador
- Novos recursos:
- Fornecer um mecanismo para Globais AST Transformations para ser capaz de definir uma extensão de arquivo para as fontes de Groovy devem ser aplicados para
- Fornecer uma infra-estrutura de teste gerador de stub
- Adicione ligações sintéticas para JList
O que é novo na versão 1.7.4:.
- Closures estão agora & quot; que pode ser chamado & quot;
- Novas transformações AST.
- Uma sintaxe adicional para cordas, com US $ / ... / $, para contornar várias escapar casos de canto, como por exemplo $ / a / b & # x5C; c $$ $ $ //
- métodos Nova GDK como Map.countBy {}, {} Map.collectEntries, Date.putAt () (operador de subscrito), Date.updated ().
- Os novos métodos de String como tr (), stripMargin (), stripIndent (), (un) expandir (),
- withDefault do Mapa {} método,
- ncury de Encerramento () e rcury ()
O que é novo na versão 1.7.3:
- Novas transformações AST, comoSynchronized (utilização mais segura de sincronização) eInheritConstructors (nice para herdar construtores exceção)
- first () / passada () / cabeça () / cauda () métodos em matrizes para a coerência com listas (matrizes primitivas não cobertos até o momento)
- Algumas melhorias manuseio BigDecimal para melhores resultados em alguns cálculos casos de borda
- Uma atualização para as importações estáticas para propriedades
- Novo método na data para que você possa fazer cal [DAY_OF_WEEK] = segunda-feira
- métodos de manipulação nova cadeia, como capitalizar (), tr do UNIX (), expanda () / unexpand (), bem como stripIndent () e stripMargin ()
- Um ícone Groovy agradável para o Console do balanço Groovy no Mac OS X
Comentários não encontrado