
Plugin Gradle para provisionamento rápido e reproduzível do Eclipse IDE como um artefato de build, com suporte para builds OSGi, p2 e RCP.
É possível ter muitas instalações do Eclipse IDE compartilhando um conjunto comum de artefatos instalados, chamado de "bundlepool". Isso significa que é rápido e eficiente obter uma IDE criada sob medida para cada projeto, pré-configurada com todos os plugins e configurações adequados para o projeto em questão.
Quando você executa gradlew ide, ele compila e baixa uma IDE em build/oomphIde com apenas os recursos de que você precisa. Leva ~15 segundos e 1MB de espaço em disco depois que todos os artefatos comuns forem armazenados em cache em ~/.goomph.
apply plugin: 'com.diffplug.oomph.ide'
oomphIde {
repoEclipseLatest()
jdt {}
eclipseIni {
vmargs('-Xmx2g') // IDE can have up to 2 gigs of RAM
}
style {
classicTheme() // oldschool cool
niceText() // with nice fonts and visible whitespace
}
}
Consulte a javadoc do plugin para um início rápido e HOW_TO_AUTOMATE_IDE.md para exemplos e detalhes mais aprofundados.
Acontece que as ferramentas necessárias para implementar "IDE como artefato de build" são as mesmas necessárias para manipular arquivos de projeto do Eclipse e também para construir plugins Eclipse e aplicações RCP em primeiro lugar. Esse é o outro lado do Goomph. Para um projeto de exemplo, veja a palestra Gradle e Eclipse RCP.
Software Eclipse do mundo real construído com Goomph:
Abaixo está um índice dos recursos do Goomph, com links para a javadoc onde você pode encontrar exemplos de uso.
com.diffplug.eclipse Arquivos de projeto do Eclipse e artefatos maven central de mapeamento de versões do eclipse.apt corrige o projeto eclipse para funcionar com o processamento de anotações do Gradle.mavencentral facilita a adição de jars de dependência de uma versão do eclipse.buildproperties usa build.properties para controlar um build do gradle e corrige o classpath do projeto eclipse para incluir ativos binários especificados em build.properties.excludebuildfolder exclui a pasta build do gradle da indexação de recursos do Eclipse.projectdeps corrige um problema intermitente em que as dependências de outros projetos no workspace nem sempre são resolvidas corretamente dentro do Eclipse.resourcefilters adiciona filtros de recurso ao projeto eclipse.com.diffplug.osgi Plugins para trabalhar com OSGi.bndmanifest gera um manifest usando apenas bnd e o envia para consumo pela IDE.equinoxlaunch pode configurar e executar aplicações equinox como parte do build, como um gerador de código.OsgiExecable facilita a execução de um trecho de código dentro de um contêiner OSGi e a obtenção do resultado de fora do contêiner.com.diffplug.p2 A e plugins para manipular dados p2.asmaven baixa dependências de um repositório p2 e as disponibiliza em um repositório maven local.P2Model modela um conjunto de repositórios p2 e IUs e fornece métodos de conveniência para executar p2-director ou a tarefa ant p2.mirror contra eles.P2AntRunner executa tarefas ant do eclipse.CategoryPublisher modela a aplicação eclipse CategoryPublisher.FeaturesAndBundlesPublisher modela a aplicação eclipse FeaturesAndBundlesPublisher.Repo2Runnable modela a aplicação eclipse Repo2Runnable.com.diffplug.gradle.pde Tarefas para executar o Eclipse PDE usando uma instância do eclipse baixada.PdeBuildTask executa o build do PDE para construir um produto RCP.PdeAntBuildTask executa o PDE em um arquivo ant.com.diffplug.gradle Infraestrutura diversa.CmdLineTask executa uma série de comandos shell, possivelmente copiando ou movendo arquivos nesse meio-tempo.JavaExecable facilita executar um trecho de código em uma JVM separada e obter o resultado de volta nesta.JavaExecWinFriendly supera limitações no comprimento da linha de comando do Windows e em classpaths longos.com.diffplug.gradle.eclipserunner Infraestrutura para executar aplicações eclipse sem interface gráfica.com.diffplug.configuration-cache-for-platform-specific-build permite que você use OS.getNative() e OS.getRunning() no seu build gradle sem quebrar o cache de configuração.eclipseMavenCentral.net.ltgt.apt-eclipse.
com.diffplug.eclipse.apt.CategoryPublisher (#126).3.10.0.BndManifestPlugin.