Il existe un projet Eclipse RCP/IDE-Plug-in qui dépend de plusieurs modules Eclipse comme org.eclipse.e4.core.di
ou org.eclipse.core.runtime
.eclipse RCP maven/tycho manquant exigence 'ensemble org.eclipse.e4.core.di'
Ce projet est compilé dans un environnement Eclipse IDE for Committers avec un fichier .target
pour la configuration des dépendances.
Je veux ajouter un maven sans tête/construire Tycho pour ce projet qui entraîne des erreurs comme suit:
[ERROR] Cannot resolve project dependencies:
[ERROR] Software being installed: org.myplugin.someservice 1.0.0
[ERROR] Missing requirement: org.myplugin.someservice 1.0.0 requires 'bundle org.eclipse.e4.core.di 0.0.0' but it could not be found
La configuration du projet ressemble à ceci:
releng/
org.myplugin.releng/
pom.xml (contains tycho-plugins def, modules, target ref)
org.myplugin.target/
Neon.target
pom.xml (contains 'eclipse-target-definition')
plugins/
org.myplugin.someservice/
pom.xml
META-INF/
MANIFEST.MF (contains reference to org.eclipse.e4.core.di)
Je l'ai utilisé le tutoriel de Lars Vogel (http://www.vogella.com/tutorials/EclipseTycho/article.html#exercise-using-a-target-platform-for-the-build) pour la configuration de base et la compréhension.
Le contenu du fichier cible sont:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?pde version="3.8"?><target name="Neon" sequenceNumber="43">
<locations>
<location includeAllPlatforms="false" includeConfigurePhase="false" includeMode="planner" includeSource="false" type="InstallableUnit">
<unit id="org.eclipse.platform.sdk" version="4.6.3.M20170301-0400"/>
<unit id="org.eclipse.pde.feature.group" version="3.12.3.v20170301-0400"/>
<unit id="org.eclipse.pde.source.feature.group" version="3.12.3.v20170301-0400"/>
<unit id="org.eclipse.platform.ide" version="4.6.3.M20170301-0400"/>
<unit id="org.eclipse.equinox.sdk.feature.group" version="3.12.0.v20170209-1843"/>
<unit id="org.eclipse.rcp.feature.group" version="4.6.3.v20170301-0400"/>
<repository location="http://download.eclipse.org/eclipse/updates/4.6"/>
</location>
<location includeAllPlatforms="false" includeConfigurePhase="false" includeMode="planner" includeSource="false" type="InstallableUnit">
<unit id="org.eclipse.emf.cdo.epp.feature.group" version="4.5.0.v20160607-1511"/>
<unit id="org.eclipse.emf.sdk.feature.group" version="2.12.0.v20160526-0356"/>
<unit id="org.eclipse.emf.compare.diagram.papyrus.feature.group" version="3.2.1.201608311750"/>
<unit id="org.eclipse.xtext.sdk.feature.group" version="2.10.0.v201605250459"/>
<unit id="org.eclipse.gmf.runtime.sdk.feature.group" version="1.10.0.201606071959"/>
<unit id="org.eclipse.gmf.runtime.notation.sdk.feature.group" version="1.10.0.201606071631"/>
<unit id="org.eclipse.uml2.sdk.feature.group" version="5.2.3.v20170227-0935"/>
<unit id="org.eclipse.emf.compare.ide.ui.feature.group" version="3.2.1.201608311750"/>
<repository location="http://download.eclipse.org/releases/neon"/>
</location>
</locations>
</target>
Ce attrape la plupart du temps ce que mes informations d'installation Eclipse imprime sur le logiciel installé.
Le target/pom.xml
ressemble à ceci:
<?xml version="1.0" encoding="UTF-8"?>
<project
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.myplugin</groupId>
<artifactId>org.myplugin.releng</artifactId>
<version>1.0.0-SNAPSHOT</version>
<relativePath>../org.myplugin.releng/pom.xml</relativePath>
</parent>
<groupId>org.myplugin</groupId>
<artifactId>org.myplugin.target</artifactId>
<version>1.0.0-SNAPSHOT</version>
<packaging>eclipse-target-definition</packaging>
</project>
Le releng/pom.xml
est assez grand et spécifie tous les plugins Maven/de Tycho, le fichier cible à utiliser pour la résolution des dépendances, des plates-formes cibles et tous les plug-ins et fonctionnalités sous forme de modules.
Pour un défaut de plug-in le fichier pom.xml ressemble à ceci:
<?xml version="1.0" encoding="UTF-8"?>
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.myplugin</groupId>
<artifactId>org.myplugin.releng</artifactId>
<version>1.0.0-SNAPSHOT</version>
<relativePath>../../org.myplugin.releng/pom.xml</relativePath>
</parent>
<groupId>org.myplugin</groupId>
<artifactId>org.myplugin.someservice</artifactId>
<version>1.0.0-SNAPSHOT</version>
<packaging>eclipse-plugin</packaging>
</project>
J'ai lu beaucoup question similaire ici sur stackoverflow et essayé beaucoup des correctifs:
- supprimer la version cible tag/pom.xml,
- enlever le chemin relatif,
- utilisant pom au lieu d'eclipse-cible définition
- et quelques autres
Rien n'a fonctionné. Alors qu'est-ce qui me manque ici?
EDIT: Comme je l'ai compris les plugins Tycho de configuration releng/pom.xml
et des trucs Devrais-maven. L'exécution de la commande mvn clean verfiy
doit alors générer la solution alors que la définition Neon.target spécifiée dans releng/pom.xml
prend les target/pom.xml
et target/Neon.target
pour obtenir l'environnement Eclipse (y compris les éléments org.eclipse.e4.core.di
et org.eclipse.core
) plus les autres dépendances définies.
EDIT2: Mon plug-in eclipse-target-definition
est configuré comme ceci:
<profile>
<id>Neon.target</id>
<activation>
<activeByDefault>false</activeByDefault>
</activation>
<properties>
<xtext-version>2.10.0</xtext-version>
</properties>
<build>
<plugins>
<plugin>
<groupId>org.eclipse.tycho</groupId>
<artifactId>target-platform-configuration</artifactId>
<version>${tycho-version}</version>
<configuration>
<includePackedArtifacts>true</includePackedArtifacts>
<target>
<artifact>
<groupId>org.myplugin</groupId>
<artifactId>org.myplugin.target</artifactId>
<version>1.0.0-SNAPSHOT</version>
<classifier>org.myplugin.target</classifier>
</artifact>
</target>
</configuration>
</plugin>
</plugins>
</build>
</profile>
EDIT3: J'utilise Tycho Version 1.0.0
EDIT4 Correction d'une faute de frappe dans target/pom.xml
.
Pouvez-vous ouvrir votre 'Neon.target' dans Eclipse * Target Editor *. Attendez qu'Eclipse ait résolu la plate-forme cible, puis vérifiez sur l'onglet * Contenu * si 'org.eclipse.e4.core.di' est effectivement inclus dans votre plate-forme cible. –
OK, votre 'Neon.target' contient vraiment ** org.eclipse.e4.core.di' (juste vérifié moi-même). Mais est-ce que votre plug-in 'org.myplugin.someservice' vous fait installer le plug-in Maven [target-platform-configuration] (https://wiki.eclipse.org/Tycho/Target_Platform#Target_files) dans son' pom. xml' (ou l'un de ses parents)? –
J'ai ajouté la configuration du plugin target-platform-configuration comme EDIT2. Cette config est dans le pom.xml parent de org.myplugin.releng. – justwellbrock