Na virada de 2016 para 2017, adotamos oficialmente o Gradle como ferramenta de construção de software na Prodist. A fila da migração está fluindo confortavelmente desde então. Já temos as provas de conceito necessárias para todos os projetos, inclusive os projetos nativos para compilador C++.
Para fontes Java usamos Eclipse. Integramos projetos Gradle ao Eclipse usando Buildship. Acho que o Buildship ainda tem um longo caminho pela frente, mas realiza tudo o que necessitamos. Já estamos entregando com base nesse esquema.
O problema mais importante que encontramos foi na integração de projetos OSGi. No Eclipse, trabalhamos projetos OSGi com o PDE. Nosso ciclo de desenvolvimento inclui rodar configurações "OSGi Framework" no Eclipse para teste. Infelizmente, o PDE assume uma estrutura de projeto própria e não funciona corretamente caso contrário.
Estes problemas estão registrados em bugs como, por exemplo, o bug 153023.
Nossos projetos OSGi com Gradle usam o layout padrão com src/main/java e src/main/resources. Em particular, o arquivo MANIFEST.MF está em src/main/resources/META-INF.
Eclipse PDE assume que META-INF/MANIFEST.MF está na raiz do projeto.
Felizmente, existe uma maneira de forçar o PDE a encontrar o MANIFEST.MF. Existe uma propriedade de configuração sem UI chamada BUNDLE_ROOT_PATH. Essa propriedade é persistida em .settings/org.eclipse.pde.core.prefs. Criar o arquivo manualmente e definir um valor para essa propriedade resolve o problema. No nosso caso, o valor correto é:
BUNDLE_ROOT_PATH=src/main/resources
Para fontes Java usamos Eclipse. Integramos projetos Gradle ao Eclipse usando Buildship. Acho que o Buildship ainda tem um longo caminho pela frente, mas realiza tudo o que necessitamos. Já estamos entregando com base nesse esquema.
O problema mais importante que encontramos foi na integração de projetos OSGi. No Eclipse, trabalhamos projetos OSGi com o PDE. Nosso ciclo de desenvolvimento inclui rodar configurações "OSGi Framework" no Eclipse para teste. Infelizmente, o PDE assume uma estrutura de projeto própria e não funciona corretamente caso contrário.
Estes problemas estão registrados em bugs como, por exemplo, o bug 153023.
Eclipse PDE assume que META-INF/MANIFEST.MF está na raiz do projeto.
Felizmente, existe uma maneira de forçar o PDE a encontrar o MANIFEST.MF. Existe uma propriedade de configuração sem UI chamada BUNDLE_ROOT_PATH. Essa propriedade é persistida em .settings/org.eclipse.pde.core.prefs. Criar o arquivo manualmente e definir um valor para essa propriedade resolve o problema. No nosso caso, o valor correto é:
BUNDLE_ROOT_PATH=src/main/resources
Comentários
Postar um comentário