Construyendo un plugin de Eclipse usando Maven
eclipse-plugin eclipse-rcp (3)
El ''org.eclipse.equinox.executable.feature.groug'' parece ser necesario si crea un producto Eclipse que incluye los iniciadores nativos (la propiedad "incluir laucher" se establece en true en la configuración del producto). Intente agregar la función a la definición de su plataforma (por ejemplo, copie de eclipse p2 repo o su eclipse de ejecución IDE).
Ver también https://bugs.eclipse.org/bugs/show_bug.cgi?id=407272
Saludos, Paolo
Estoy intentando configurar Maven para construir una aplicación Eclipse (complemento Eclipse empaquetado con todos los Eclipse EXEs, etc.).
Ya he macerado docenas de dependencias del proyecto y las he implementado en nuestro servidor interno Nexus (OSS). También instalé el complemento Nexus P2 Repository y el plugin P2 Bridge (2.6.3-01) y el Nexus Unzip Plugin (0.12.0). Puedo navegar a la carpeta .meta / p2 de nuestro repositorio de grupos, pero actualmente está vacía.
Esto debería ser mucho más simple de lo que actualmente parece ser. Me estoy enfocando en Eclipse 3.4.2 (Ganimedes) en Windows. Si hace alguna diferencia, realmente implementamos nuestra aplicación empaquetada como una instalación de Eclipse reducida o personalizada.
eclipse-repositorio
Cuando ejecuto maven contra un pom con <packaging>eclipse-repository</packaging>
obtengo el siguiente error:
[ERROR] Missing requirement: MyApp 0.0.0 requires
''org.eclipse.equinox.executable.feature.group 0.0.0''
but it could not be found
... ¿de dónde saco eso y cómo lo agrego a Nexus?
Cuando ejecuto maven contra un pom con <packaging>eclipse-plugin</packaging>
obtengo el siguiente error:
[ERROR] Missing requirement: MyApp 0.0.0 requires
''bundle org.eclipse.ui 0.0.0''
but it could not be found
... pero encontré los siguientes directorios en mi sistema de archivos local (sospecho que itp-04-rcp generó el primero):
D:/maven/repository/p2/osgi/bundle/org.eclipse.ui/3.6.2.M20110203-1100
D:/maven/repository/p2/osgi/bundle/org.eclipse.ui/3.7.0.v20110928-1505
Tycho POM: primeros artefactos
También probé el combo pom-first-dependence y manifest-first-dependency: http://wiki.eclipse.org/Tycho/How_Tos/Dependency_on_pom-first_artifacts
No entiendo cómo funciona esto. Puedo construir itp02 desde Git. Puedo ver que construye dos paquetes:
+---------------------+---------------------+--------------------------------------+ | artifactId | Bundle-Name | Bundle-SymbolicName | +---------------------+---------------------+--------------------------------------+ | pomfirst-bundle | pomfirst-bundle | tycho.demo.itp02.pomfirst-bundle | | pomfirst-thirdparty | pomfirst-thirdparty | tycho.demo.itp02.pomfirst-thirdparty | +---------------------+---------------------+--------------------------------------+
... pero ¿cómo build02 los recoge? Lo único que parece relevante es:
Import-Package: tycho.demo.itp02.pomfirst
... que no tiene nada que ver con ninguno de los nombres de los paquetes.
Plugin Felix Maven Bundle
Probé el complemento Felix maven-bundle . Incluyo todas mis dependencias de maven normales en un pom con <packaging>bundle</packaging>
.
mvn deploy
crea algo en /nexus/content/repositories/snapshots/.meta/p2/plugins. Puedo descargar el jar a través de un navegador, pero todos los jars de dependencia se llaman "artefact-vresion" en lugar de "artefact_version" - ¿es así?mvn bundle:bundleall
crea un paquete OSGI para cada una de las dependencias transitivas, pero no estoy seguro de qué hacer con ellos desde aquí.mvn bundle:deploy
niega a hacer nada a menos que especifique-DremoteOBR
y probablemente algunos otros parámetros que realmente no entiendo.
¿Puede hacer que maven / tycho crea una instancia de una plataforma de destino contra la cual puede construir sus plugins de origen? http://www.vogella.com/articles/EclipseTycho/article.html
Para resolver el problema relacionado con las dependencias faltantes:
[ERROR] Missing requirement: MyApp 0.0.0 requires
''bundle org.eclipse.ui 0.0.0''
but it could not be found
parece que su Feature / Plugin MyApp requiere descargar el complemento org.eclipse.ui antes de poder instalarlo.
Debería verificar su configuración desde su configuración-pom así:
<properties>
<tycho.version>0.25.0</tycho.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<repository.url>http://download.eclipse.org/releases/neon</repository.url>
</properties>
<repositories>
<repository>
<id>NeonRepository</id>
<url>${repository.url}</url>
<layout>p2</layout>
</repository>
si ha configurado su repositorio p2 autohospedado, asegúrese de que la página esté compilada correctamente. Puede verificar esto si selecciona (en eclipse) Ayuda -> Instalar nuevo software . Eclipse debe mostrar las partes proporcionadas. Si no se muestra nada, incluso si ha deseleccionado todas las casillas de verificación, debe verificar su repositorio p2. Debe contener el contenedor de "características" y "complementos" , así como también los artefactos.jar y content.jar . Si solo tiene las dos carpetas, debe ejecutar
eclipse -application org.eclipse.equinox.p2.publisher.UpdateSitePublisher
-metadataRepository file:/<some location>/repository
-artifactRepository file:/<some location>/repository
-source /<location with a site.xml>
-configs gtk.linux.x86
-compress
-publishArtifacts
en una CLI / Shell. Para obtener más información, consulte la documentación del eclipse .