Maven Maven, Eclipse Plugins und Classpath

G

Gast2

Gast
Hallo zusammen,

ich habe ein Java Projekt für die Codegenerierung mit EMF, für die benötigten Plugins habe ich eine Manifest Datei angelegt und den Classpath mit der Plugin-Libray erweitert. Nun will ich einige interne jars mit Maven herunterziehen und den Classpath erweitern. Wie kann ich Maven sagen, dass er den bestehenden Classpath erweitern soll und nicht immer neu anlegt, weil dadurch ist jedes mal eine Plugin-Libray von Eclipse weg.
 
G

Gast2

Gast
So klappts
[XML]
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-eclipse-plugin</artifactId>
<inherited>true</inherited>
<configuration>
<classpathContainers>
<classpathContainer>org.eclipse.jdt.launching.JRE_CONTAINER</classpathContainer>
<classpathContainer>org.eclipse.pde.core.requiredPlugins</classpathContainer>
</classpathContainers>
</configuration>
</plugin>
[/XML]
 
G

Gast2

Gast
schade funktioniert nur beim refresh, aber beim deployen findet er die Klassen nicht

Java:
cannot find symbol
symbol  : class EList
Aber so wie das verstanden habe müssen die verwendetetn Plugins nicht im repo liegen oder?
ein eclipse:eclipse funktioniert und mein classpath sieht richtig aus.
Jetzt will ich einfach eine jar bauen und die ins repo hochladen in der jar sind nur utils klassen drin.


Kann ich notfalls die jar mit Ant bauen und in ein repo hochladen? Geht sowas mit Ant?
 
Zuletzt bearbeitet von einem Moderator:
G

Gast2

Gast
Ich hab jetzt eclipse:to-maven ausgeführt und die ganzen Eclipse-Plugins wurden in mein repo hochgeladen.
Nun habe ich die benötigten dependency angegeben
[XML]
<dependency>
<groupId>org.eclipse.emf</groupId>
<artifactId>common</artifactId>
<version>2.6.0-v20100914-1218</version>
<optional>false</optional>
</dependency>
[/XML]

ABER die generierten pom.xml kann seine eigenen versionen nicht finden.
Java:
[ERROR] An error occurred during dependency resolution of the following artifact:
    org.eclipse.core:runtime:null
Caused by: Couldn't find a version in [3.6.0-v20100505] to match range [3.6.0,4.0.0)
  org.eclipse.core:runtime:jar:null

from the specified remote repositories:
  central ([url=http://repo1.maven.org/maven2]Index of /maven2/[/url]),
  test ([url]http://my//m2repository[/url])

Path to dependency: 
	1) xxx.utils:jar:1.0.0
	2) org.eclipse.emf:common:jar:2.6.0-v20100914-1218


Irgendwie funkonieren die die Range angaben nicht und ich weiß nicht warum
z.B. wenn ich als version 2.6.0 schreibe klappt alles.
aber wenn ich eine range angebe <version>[2.6.0,4.0.0)</version> dann wird nichts mehr gefunden, verstehe nicht warum weil die range ja aussagt 2.6.0 <= x >4.0.0
Jeman eine idee?
 
Zuletzt bearbeitet von einem Moderator:
M

maki

Gast
aber wenn ich eine range angebe <version>[2.6.0,4.0.0)</version> dann wird nichts mehr gefunden, verstehe nicht warum weil die range ja aussagt 2.6.0 <= x >4.0.0
Jeman eine idee?
Ranges werden IME nicht funktionieren.

Eclipse hat ein ganz anderes Verständnis von Releases & Snapshots als Maven, aus Maven Sicht sind das alles nur SNAPSHOTS, dazu kommt das Maven und OSGi unteschiedliche Sortierungsverfahren für Versionen nutzen (. und -), daran kann auch das eclipse :to-maven Plugin goal nichts ändern.

Vergiss also Ranges wenn du mit Maven ein Eclipse RCP bauen willst, würde sowieso nicht wirklich funktionieren imho, jede Eclipse Release hat seine eigenen, spezifischen Abhängigkeiten die zwar als OSGi Ranges angegeben sind, aber sicherlich nciht einfach so funktoinieren werden wenn man die Bundles verschiedener Eclipse RCP Releases mischt.
D.h., wenn das Projekt auf Eclipse 3.5.1 aufbaut, dann ist das etwas anderes als auf Eclipse 3.5.2.

Wenn man mal darüber anchdenkt was sich zwischen Eclipse 2.6 und 3.9 alles ändern würde, kann man sich über eine range ala >= 2.6 && < 4.0 nur wundern ;)

Du könntest zwar die qualifier per Kommandozeilenoption weglassen beim eclipse:to-maven, aber das würde das Problem nur verschleiern.

Hi,

so weit ich weiß sind die Eclipse Sachen auch nicht in Maven Central...?
Hi kama, er hat sein eigenes repo erstellt, basierend auf einer Eclipse Installation ([c]mvn eclipse:to-maven[/c]).
Nebenbei, es kann gar kein funktionierendes öffentliches Eclipse Maven Repo geben welches auf ranges arbeitet aus den oben genannten Gründen.
 
Zuletzt bearbeitet von einem Moderator:

Wildcard

Top Contributor
Abhängigkeiten die zwar als OSGi Ranges angegeben sind, aber sicherlich nciht einfach so funktoinieren werden wenn man die Bundles verschiedener Eclipse RCP Releases mischt.
D.h., wenn das Projekt auf Eclipse 3.5.1 aufbaut, dann ist das etwas anderes als auf Eclipse 3.5.2.
Die OSGi Versionierung funktioniert nach dem Prinzip major.minor.micro.
Micro: Keine Änderung in den Schnittstellen
Minor: Abwärtskompatible Änderungen
Major: inkompatibel
Einige der Kern Bundles in Eclipse verwenden keine Ranges sondern referenzieren eine explizite Version, aber je weiter man in die 'Peripherie' vordringt umso looser sind die Bundles üblicherweise gekoppelt.
Wenn man eigene Bundles entwickelt ist man normalerweise von der Micro Version unabhängig und in vielen Fällen (wenn man eine neue Funktionalität nicht braucht) kann man auch problemlos mehrere minor Versions gleichzeitig unterstützen.
Bei Eclipse selbst wird die Einhaltung dieses Versionierungsvertrags normalerweise auch strikt durch Tooling forciert (API-Baseline aus PDE).
 
M

maki

Gast
Die OSGi Versionierung funktioniert nach dem Prinzip major.minor.micro.
Schon klar, und zum Schluss kommt ein Timestamp (das alleine macht es für Maven schon zum Snapshot), damit gibt es dann u.U. mehrere ausgaben eines Bundles mit denselben major, minor & micro Versionenen die aber dennoch unterschiedlich sind ;) (schon klar dass diese kompatibel sein sollten)

Einige der Kern Bundles in Eclipse verwenden keine Ranges sondern referenzieren eine explizite Version, aber je weiter man in die 'Peripherie' vordringt umso looser sind die Bundles üblicherweise gekoppelt.
Dazu kommt, dass die Version Ranges in der Manifest imho oft schon fahrlässig optimistisch sind (>=3.0, <4.0) dass man daraus leider keine zuverlässigen Infos extrahieren kann, und genau das versucht eclipse:to-maven.

Eclipse baut erstmal Snapshots, diese werden später zum Release promoted wenn alle zufrieden sind, allerdings bleiben die Timestamp infos erhalten.
In Maven macht man es anders, wenn man da ein Release machen will, dann macht man das direkt, inkl. Tag im SCM.
Hat beides Vor- und Nachteile, leider sind u.a. dadurch eben bestimmte Eclipse RCP und Maven konzepte nicht wirklich kompatibel.
 

Wildcard

Top Contributor
Dazu kommt, dass die Version Ranges in der Manifest imho oft schon fahrlässig optimistisch sind (>=3.0, <4.0) dass man daraus leider keine zuverlässigen Infos extrahieren kann
Nein, die passen eigentlich wenn man sich an das OSGi versioning scheme hält und keine internal packages verwendet werden (wenn doch, darf man nicht mit solchen Ranges arbeiten). Die API von 3.9.9 muss abwärtskompatibel bis 3.0.0 sein und das PDE Tooling würde inkompatible Änderungen auch verbieten wenn eine API Baseline verwendet wird.

Hat beides Vor- und Nachteile, leider sind u.a. dadurch eben bestimmte Eclipse RCP und Maven konzepte nicht wirklich kompatibel.
Absolut, sehe ich genauso. Die Sache ist schon von Anfang an inkompatibel da es bei OSGi Dependencies primär um runtime und bei Maven Dependencies primär um compile time geht.
Sind halt sehr unterschiedliche Konzepte.
 
G

Gast2

Gast
Warum sollten ranges nicht funktionieren???
Ich will keinen Eclipse RCP bauen!!!

Ich habe habe eclipse:to-maven aufgerufen, damit die Eclipse-Plugins mavensiert wurde.
Maven Eclipse plugin - eclipse:to-maven
Dort habe ich stripQualifier auf true gesetzt, damit der Timestamp wegelassen wird und in mein Repo hochgeladen. Die Eclipse Plugins, welche mavensiert wurden, sehen gut aus. Außer das dort version ranges s.o. in den poms angegeben sind, welche das eclipe:to-maven erstellt haben.
Was aber eigentlich ja nicht schlimm sein sollte, da es ganz normale Maven-Artefakte sind.
 
G

Gast2

Gast
Wenn man mal darüber anchdenkt was sich zwischen Eclipse 2.6 und 3.9 alles ändern würde, kann man sich über eine range ala >= 2.6 && < 4.0 nur wundern ;)

Du könntest zwar die qualifier per Kommandozeilenoption weglassen beim eclipse:to-maven, aber das würde das Problem nur verschleiern.


Hi kama, er hat sein eigenes repo erstellt, basierend auf einer Eclipse Installation ([c]mvn eclipse:to-maven[/c]).
Nebenbei, es kann gar kein funktionierendes öffentliches Eclipse Maven Repo geben welches auf ranges arbeitet aus den oben genannten Gründen.

Ja das macht ja das eclipe:to-maven, ich will ja jetzt nicht alle Bundles die erstellt wurden selber anfassen sonst hat das Maven Plugin ja keinen sinn. Die poms werden mit ranges generiert.
Das Maven Eclipse Plugin ist version 2.8

@maki hast du es hinbekommen, dass das eclipe:to-maven etwas poms generiert OHNE version ranges?
ich denke mal er nimmt die infos aus dem manifest und wenn dort eine range drin ist kann ich ja daran nichts ändern.
 
Zuletzt bearbeitet von einem Moderator:
M

maki

Gast
Nein, die passen eigentlich wenn man sich an das OSGi versioning scheme hält und keine internal packages verwendet werden (wenn doch, darf man nicht mit solchen Ranges arbeiten). Die API von 3.9.9 muss abwärtskompatibel bis 3.0.0 sein und das PDE Tooling würde inkompatible Änderungen auch verbieten wenn eine API Baseline verwendet wird.
Die API könnte im besten Falle kompatibel sein, aber das (interne) verhalten ist dann doch oft anders.
Die tatsache dass Eclipse das sehr oft noch Split Packages verwendet macht es imho nicht einfacher.

Absolut, sehe ich genauso. Die Sache ist schon von Anfang an inkompatibel da es bei OSGi Dependencies primär um runtime und bei Maven Dependencies primär um compile time geht.
Sind halt sehr unterschiedliche Konzepte.
Das meinte ich nicht, OSGi und Maven sind sehr wohl "kompatibel", die Tatsache dass es bei OSGi um Runtime Dependencies (und mehr) geht ist dabei gar kein Problem.
Das Problem ist imho speziell bei Eclipse RCP die Versionierung und deren ranges, diese sind nicht wirklich kompatibel mit Maven.

@maki hast du es hinbekommen, dass das eclipe:to-maven etwas poms generiert OHNE version ranges?
Nein, natürlich nicht.

ich denke mal er nimmt die infos aus dem manifest und wenn dort eine range drin ist kann ich ja daran nichts ändern.
Eben.

D.h. aber nicht dass man selber die ranges verwenden kann, das geht eben nicht, muss es auch nicht, wenn man darüber nachdenkt ;)

Am besten IME:
Pro mavenisierte Eclipse Version ein Repo in deinem Repo manager anlegen, jedes Projekt welche Eclipse RCP Artifakte braucht darf nur in einziges dieser Repos verwenden, ansonsten würde es früher oder später krachen.
Keine Ranges verwenden bei dependecies, Begründung s.o.
 
Zuletzt bearbeitet von einem Moderator:
G

Gast2

Gast
Ich benutze auch keine ranges, aber die eclipse poms die generiert wurden und bei denen kracht es.
 
M

maki

Gast
Hast du dein Repo wieder gelöscht bevor du alles nochmals ohne Qualifier hochgeladen hattest?
 
G

Gast2

Gast
Hast du dein Repo wieder gelöscht bevor du alles nochmals ohne Qualifier hochgeladen hattest?

Jop hab ich gemacht!
Ich glaub ich generier es mal auf meine Lokale Platte und schieb die Plugins von Hand ins repo.

EDIT: Also wenn ich die Eclipse-Plugins erst auf die lokale Platte generiere und dann hochlade klappt alles.
Ich kann zwar immer noch keine version ranges angeben, aber die generierten pom's, die die version ranges enthalten funktionieren nun. Mysteriös :noe:
 
Zuletzt bearbeitet von einem Moderator:
Ähnliche Java Themen
  Titel Forum Antworten Datum
ExceptionOfExpectation Maven Build Failed: kann nicht von start.spring.io generiertes Projekt auf Eclipse starten Tools - Maven, Gradle, Ant & mehr 20
Tippster Maven Sqlite integrieren (Eclipse, Maven) Tools - Maven, Gradle, Ant & mehr 4
P Maven Test werden nicht ausgeführt . Junit . Maven . Surefire . Eclipse Tools - Maven, Gradle, Ant & mehr 12
H Eclipse JUnit erzeugt Fehler im Maven-Test Tools - Maven, Gradle, Ant & mehr 1
reibi Maven Maven + Eclipse Tools - Maven, Gradle, Ant & mehr 0
P Erzeugen von WebServices mit Maven und Eclipse (external Tool) Tools - Maven, Gradle, Ant & mehr 2
Rudolf JSF und Maven mit Eclipse Tools - Maven, Gradle, Ant & mehr 5
D JUnit Test in Maven fail und in Eclipse erolgreich Tools - Maven, Gradle, Ant & mehr 4
D [Maven] noclassdeffounderror in eclipse (junittest) - mvn integration-test funktioniert!) Tools - Maven, Gradle, Ant & mehr 9
M Maven GWT+Eclipse+maven Tools - Maven, Gradle, Ant & mehr 3
D gwt-maven-plugin und Eclipse Tools - Maven, Gradle, Ant & mehr 1
J Maven + JPA + Eclipse + Hibernate Tools - Maven, Gradle, Ant & mehr 1
K Maven Multimodule Maven Projekt mit GWT in Eclipse - das Grauen Tools - Maven, Gradle, Ant & mehr 13
B Maven build-helper-maven-plugin mit Eclipse Tools - Maven, Gradle, Ant & mehr 3
R Maven+Eclipse: Repository im Workspace? Tools - Maven, Gradle, Ant & mehr 6
Kessi Maven & Run As Eclipse Application Tools - Maven, Gradle, Ant & mehr 2
Kessi Maven und Eclipse Plug-in Unit Tests Tools - Maven, Gradle, Ant & mehr 9
F Eclipse - Maven - Tomcat Tools - Maven, Gradle, Ant & mehr 3
S Servlet-JSP-Anwendung mit Maven und Eclipse Tools - Maven, Gradle, Ant & mehr 4
T Eclipse RCP + Maven + Eclipse IDE Tools - Maven, Gradle, Ant & mehr 4
Oneixee5 Maven deploy - per SSH Tools - Maven, Gradle, Ant & mehr 6
H Maven kein Hauptmanifestattribut Tools - Maven, Gradle, Ant & mehr 10
M Programm mit Maven erstellen und starten samt Abhängigkeiten Tools - Maven, Gradle, Ant & mehr 27
D Interne Dependencies in Maven Tools - Maven, Gradle, Ant & mehr 51
J log4j2 mit Hibernate über Maven Tools - Maven, Gradle, Ant & mehr 10
thor_norsk Maven Build Failed: kann nicht von start.spring.io generiertes Projekt auf IntelliJ IDE starten Tools - Maven, Gradle, Ant & mehr 8
H Maven JUnit5 Tests werden ignoriert Tools - Maven, Gradle, Ant & mehr 5
thor_norsk Maven Tools - Maven, Gradle, Ant & mehr 32
Ich kann Maven nicht als UmgebungsVariable hinzufügen Tools - Maven, Gradle, Ant & mehr 2
F Maven JAR Plugin Probleme Tools - Maven, Gradle, Ant & mehr 4
W Was "braucht" man denn alles? Maven, Ant, Git, ... Tools - Maven, Gradle, Ant & mehr 21
N Fehler beim Imgui mit Maven Tools - Maven, Gradle, Ant & mehr 7
M Spring Boot Maven pom.xml-Eintrag Tools - Maven, Gradle, Ant & mehr 17
Encera JavaFX und Maven funktioniert nicht Tools - Maven, Gradle, Ant & mehr 1
B maven multi module Projekt und unnötige/zusätzliche Leerzeilen Tools - Maven, Gradle, Ant & mehr 4
J Maven Konfusion Tools - Maven, Gradle, Ant & mehr 7
T Image kreieren mit Maven bei JavaFX und nicht modularen Jars Tools - Maven, Gradle, Ant & mehr 12
T JSON Dependencies in Maven Tools - Maven, Gradle, Ant & mehr 7
T JavaFX, Jar über Maven kreieren Tools - Maven, Gradle, Ant & mehr 2
Encera Libraries Maven Projekt hinzufügen Tools - Maven, Gradle, Ant & mehr 9
Oneixee5 Maven Phase Tools - Maven, Gradle, Ant & mehr 3
Robertop maven copy-resources nicht in WAR Datei Tools - Maven, Gradle, Ant & mehr 2
T Maven: Probleme beim Einbinden der Dependencies Tools - Maven, Gradle, Ant & mehr 9
M Mit Maven eine jar Datei bauen ohne irgendeine main Methode Tools - Maven, Gradle, Ant & mehr 1
M Mit Maven eine jar Datei Bauen ohne irgendeine main Methode Tools - Maven, Gradle, Ant & mehr 18
H Maven Maven: <mainClass>NAME?</mainClass> Tools - Maven, Gradle, Ant & mehr 13
H Maven maven-source-plugin is missing Tools - Maven, Gradle, Ant & mehr 5
M Missing Artifact on selbst gehostestes Maven Paket Tools - Maven, Gradle, Ant & mehr 8
M Error code 409 maven Tools - Maven, Gradle, Ant & mehr 5
M github + maven Fehler beim repository erstellen Tools - Maven, Gradle, Ant & mehr 1
M durch Maven wird "var" nicht gefunden Tools - Maven, Gradle, Ant & mehr 4
N Maven Intellij Maven Projekt erstell keine src Tools - Maven, Gradle, Ant & mehr 4
LimDul Maven Einzelne Unit Tests in Maven Builds skippen Tools - Maven, Gradle, Ant & mehr 3
M Maven jpackage-image wird nicht gefunden Tools - Maven, Gradle, Ant & mehr 22
M javafx wird in einem alten programm nicht bei maven gefunden Tools - Maven, Gradle, Ant & mehr 15
L Maven IntelliJ, Maven und JavaFX + SceneBuilder Tools - Maven, Gradle, Ant & mehr 23
von Spotz Maven und Spring: "Add to classpath" ? Tools - Maven, Gradle, Ant & mehr 29
Kirby.exe Projekt mit Maven kompilieren Tools - Maven, Gradle, Ant & mehr 13
P Maven Projekt Abhängigkeiten auf bekante Schwachstellen prüfen Tools - Maven, Gradle, Ant & mehr 4
H Maven dependency Problem ? Tools - Maven, Gradle, Ant & mehr 23
B Maven und Intellij Tools - Maven, Gradle, Ant & mehr 24
yakazuqi Maven Eigene API mit Maven einbinden Tools - Maven, Gradle, Ant & mehr 1
M Was ist besser für den Anfang, Maven oder Gradle? Tools - Maven, Gradle, Ant & mehr 6
P Maven Wie die Maven Project version in JSP page verwenden? Tools - Maven, Gradle, Ant & mehr 2
C Maven Multi-Module Projekt Tools - Maven, Gradle, Ant & mehr 2
T Maven Warnings/Fehlermeldungen Tools - Maven, Gradle, Ant & mehr 12
T Maven und Datenbank(treiber) Tools - Maven, Gradle, Ant & mehr 13
T Maven Runnable Jar Tools - Maven, Gradle, Ant & mehr 5
T Grundlagen Maven und Git/Github Tools - Maven, Gradle, Ant & mehr 2
LimDul Maven Maven Surefire Plugin - Warnings upgrade Tools - Maven, Gradle, Ant & mehr 2
G Maven upload Tools - Maven, Gradle, Ant & mehr 0
K Maven - Parent oder Dependency? Tools - Maven, Gradle, Ant & mehr 5
B Maven Maven deploy Tools - Maven, Gradle, Ant & mehr 4
H Jenkins keine Tests gefunden - aber in Maven Tools - Maven, Gradle, Ant & mehr 30
P Mit Maven einen spezifischen Branch nach Tag-Parameter erstellen (in Jenkins-Job) Tools - Maven, Gradle, Ant & mehr 3
P Nur einen Teilbaum in Maven releasen? Tools - Maven, Gradle, Ant & mehr 7
D Cannot invoke "javafx.scene.control.MenuButton.getScene()" nach konvertierung zu maven Tools - Maven, Gradle, Ant & mehr 3
H Maven - keine Durchführung von Tests Tools - Maven, Gradle, Ant & mehr 12
H Jenkins - maven-jar-plugin - kein jar-file Tools - Maven, Gradle, Ant & mehr 38
P JavaFX jar mit Maven Tools - Maven, Gradle, Ant & mehr 9
P Maven & Intellij Modul kann nicht aufgelöst werden Tools - Maven, Gradle, Ant & mehr 12
H Maven Anfängerproblem - No plugin found for prefix 'archetype' in the current project and in the plugin groups Tools - Maven, Gradle, Ant & mehr 25
sascha-sphw Maven vs Gradle Tools - Maven, Gradle, Ant & mehr 24
D Maven Maven und die Build-Geschwindigkeit Tools - Maven, Gradle, Ant & mehr 11
K Maven IntelliJ + Maven + JavaFX Tools - Maven, Gradle, Ant & mehr 2
J Maven Mit Maven eine ZIP Datei erstellen Tools - Maven, Gradle, Ant & mehr 0
K Maven install schlägt fehl Tools - Maven, Gradle, Ant & mehr 10
I Problem: Maven import extern Lib Tools - Maven, Gradle, Ant & mehr 3
Tom299 Maven Maven funktioniert nach Installation nicht Tools - Maven, Gradle, Ant & mehr 1
I Maven Interface hinzugefügt - Error Tools - Maven, Gradle, Ant & mehr 1
M Verständnisfrage Maven Tools - Maven, Gradle, Ant & mehr 2
S Maven installieren - "Befehl wurde nicht gefunden" Tools - Maven, Gradle, Ant & mehr 1
E Maven: Wie Abhängigkeiten analysieren? Tools - Maven, Gradle, Ant & mehr 0
E Maven Maven distributionManagement Vererbung in child POM Tools - Maven, Gradle, Ant & mehr 8
P Maven Parent- Child POMs Tools - Maven, Gradle, Ant & mehr 13
E Release Kandidaten mit Maven bauen Tools - Maven, Gradle, Ant & mehr 4
C Orderstruktur bei Libarys - Wie mit Ant oder Maven lösen? Tools - Maven, Gradle, Ant & mehr 0
G Maven, finde Dependency nicht... Tools - Maven, Gradle, Ant & mehr 2
G Maven Continious Integration mit Jenkins, Maven und Nexus - wie richtig? Tools - Maven, Gradle, Ant & mehr 1
P Maven Parent und Child Poms - dependencies Tools - Maven, Gradle, Ant & mehr 1

Ähnliche Java Themen

Neue Themen


Oben