Metasfresh lokal compilieren

Hallo Zusammen,

ich habe die Anleitung zur klonen der Sourcen und zum Installieren soweit befolgt. Ein erstes Build mit Eclipse ergab Hunderte Fehler, ich habe angefangen heraus zu bekommen, was schief gegangen sein könnte.
Ein paar Warnings sehen so aus, das Daten nicht geladen werden können
" Original error: Could not transfer metadata de.metas.adempiere.adempiere:de.metas.adempiere.adempiere.base/maven-metadata.xml from/to ${deploy-repo-id} (${deploy-repo-url}): Cannot access ${deploy-repo-url} with type default using the available connector factories: AetherRepositoryConnectorFactory, BasicRepositoryConnectorFactory"

Muss ich zu Maven noch Connectoren installieren (und wie mache ich das am simpelsten)?

Und zum Aufbau, ich habe ein Verzeichnis angelegt und die Sourcen von Git als Unterbäume in das selbe Verzeichnis geschoben. Ist das richtig?

Viele Grüße,
leicht verwirrt,
Mafi

Hallo @mafi

Ein erstes Build mit Eclipse ergab Hunderte Fehler, ich habe angefangen heraus zu bekommen, was schief gegangen sein könnte.

Ich frage nur zur Sicherheit: hast du auch schon die Trouble-Shooting-Doku gesehen, die von der allgemeinen Entwickler-Doku aus verlinkt ist?

Original error: Could not transfer metadata

in der parent-pom sind zwei Repositories definiert:

<repositories>
	<repository>
		<id>metasfresh-repo</id>
		<name>metasfresh maven repository</name>
		<url>https://repo.metasfresh.com/content/groups/mvn-public/</url>
	</repository>
	<repository>
		<id>${deploy-repo-id}</id>
		<name>${deploy-repo-name}</name>
		<url>${deploy-repo-url}</url>
	</repository>
</repositories>

Die Fehler beziehen sich auf das zweite Repo, dass eigentlich nur zum bauen auf unseren Buildservern gedacht ist.
Auf den Buildservern werden für deploy-repo-url usw konkrete Werte für den jeweiligen Issue-Brnach eingesetzt.
In Eclipse kann man das zweite Repo ignorieren und das, was Eclipse zum Kompilieren braucht kann es aus dem ersten Repository runter laden.

Wo genau tauchen Fehler auf? Im “Problems” Reiter? Oder nur in der Maven-Konsole von Eclipse.
Wenn es nur in der Konsole ist, kannst Du diese Meldungen ignorieren.

Ich würde mich freuen, wenn Du es weiter versuchen würdest…gerne kannst Du uns auch im metasfresh gitter chat kontaktieren (möglichst auf english).

Viele Grüße
Tobias

Hallo @metas-ts,

die Doku hatte ich gelesen, es gab auch einen Beitrag im Forum, dem ich heute gefolgt bin und ich habe maven nochmal einzeln installiert. Dann bin ich der Vorgehensweise aus [Build metasfresh from command line] (Build metasfresh from command line) gefolgt. Bei der Webui API bin ich stecken geblieben, (genau genommen maven), der meldet einen Build Failure

“: Could not resolve dependencies for project de.metas.ui.web:metasfresh-webui-api:jar:10.0.0: Failed to collect dependencies at de.metas.fresh:de.metas.fresh.base:jar:5.27.1-4472+master: Failed to read artifact descriptor for de.metas.fresh:de.metas.fresh.base:jar:5.27.1-4472+master: Could not transfer artifact de.metas.fresh:de.metas.fresh.base:pom:5.27.1-4472+master from/to ${deploy-repo-id} (${deploy-repo-url}): Cannot access ${deploy-repo-url} with type default using the available connector factories: BasicRepositoryConnectorFactory: Cannot access ${deploy-repo-url} using the registered transporter factories: WagonTransporterFactory: Unsupported transport protocol”

Muss ich vor dem Bauen in Eclipse Maven von der Commandozeile laufen lassen, oder komme ich mit den aus Eclipse erreichbaren Einstellungen aus?

Die Fehler tauchen im Eclipse Problems Reiter auf. (Die oben natürlich im Terminalfenster…)

Viele Grüße und danke für die Hilfe,
Mafi

Hallo @metas-ts,
ich habe das ganze nochmal nach neu klonen der Repositories versucht, die alten habe ich samt Verzeichnis gelöscht.
Das Ergebnis ist frustrierenderweise das selbe, das bedeutet doch, das ich irgendetwas nicht richtig konfiguriert habe, oder? Nach dem neu Klonen müssten doch alle eventuell “zerspielten” Einstellungen weg sein?

Viele Grüße,
Mafi
PS: Gitter teste ich morgen, Passwortverifikation ist noch nicht durch…

Hallo @mafi,
ich bin leider noch nicht dazu gekommen, mir das Problem näher anzuschauen.
Kannst Du eigentlich z.B. mit dem Browser unser Maven-Repository unter https://repo.metasfresh.com erreichen?
Ansonsten habe ich vor, das ganze nochmal auf einer frischen Installation selbst durchzuspielen, in der Hoffnung, dass ich auf das selbe Problem stoße.
Außerdem wollte ich noch versuchen, per Maven-Profil das “Platzhalter”-Repository für lokale Builds gar nicht erst zu deklarieren.
Bin aber bis noch zu keinem von beiden gekommen und es könnte auch noch ein paar Tage dauern…

Viele Grüße
Tobias

Hallo @metas-ts,
per Browser klappt es, ich bekomme die Repository Übersicht, ich nehme mal an, dass das herunterladen auch klappt.
In der Terminal-Ansicht kann ich auch nachverfolgen, dass es bei einigen Repositories einen Download gibt. ( ich habe mal ein -U mitgegeben, dann lädt das Ganze fröhlich nach)
Ich teste mal ein anderes Betriebssystem, im Augenblick habe ich OSX 10.12.6. Aber das Betriebssystem sollte doch eigentlich nichts machen.
Keine Hektik :slight_smile: , ich teste mal, es muss ja an irgend einer Kleinigkeit hängen.
Viele Grüße,
Mafi

Gerade fällt mir noch was ein:
Du könntest mal versuchen, folgendes in Deine maven settings.xml zu packen:

<mirrors>
    <mirror>
	<id>nexus</id>
	<mirrorOf>*</mirrorOf>
	<url>https://repo.metasfresh.com/content/groups/mvn-public/</url>
    </mirror>
</mirrors>

Vermutlich ist das der Grund, warum maven bei uns nicht versucht, auf das “Platzhalter”-Repository zuzugreifen :blush:

Das scheint was zu ändern, es dauert erheblich länger ein maven update zu machen.
Der erste Fehler ist nach 14% aufgetaucht, eine Library (hazelcast) ist nicht im Repository. Vielleicht kommt die durch eine der vorherigen Updates, ich lasse das mal durchlaufen und schaue morgen, was sich getan hat.
Ich bin gespannt. :slight_smile:

Hallo @mafi,
ich habe mittlerweile diese Issue implementiert: https://github.com/metasfresh/metasfresh-parent/issues/14 .
Damit spielt das “Platzhalter-Repo” mit ${deploy-repo-url} usw bei lokalen Builds jetzt keine Rolle mehr.

Wenn Du magst kannst Du es mal ausprobieren:

  • metasfresh-paren (master branch) aktualisieren
  • das mit dem “mirrors” aus settings.xml auskommentieren

Das sollte es für Eclipse schon sein.
Und für den maven-Kommandozeilen-Build wäre noch zu tun

  • im metasfresh-parent ordner mvn install ausführen

…aber wirklich nur wenn Du magst…mit den settings.xml dürfte es genauso gut funktionieren.

Viele Grüße
Tobias

Hallo und guten Morgen @metas-ts,
die settings.xml Einstellung war es tatsächlich. Ich habe gestern nochmal ein maven Update gestartet, keine Fehler (ca 10k Warnings, aber bei der Projektgröße ist das glaube ich normal) und Eclipse macht es auch ohne Probleme. Juhuu :slight_smile:

Ich teste auch mal das metasfresh-parent Update, aber jetzt wissen wir definitiv, wie es klappt.

Vielen Dank und viele Grüße,
Mafi

Ich habe es ausprobiert, es klappt nach dem Aktualisieren von metasfresh-parent auch ohne die Settings.xml Einstellung.
Klasse :smiley: dank Dir

Hallo @metas-ts,
ich habe noch eine interessante Abweichung von Eclipse- zu Maven-im-Terminal verhalten, im Terminal bekomme ich beim metasfresh-dist einen Error, in Eclipse läuft das Maven Update, sowie das Build Project problemlos durch.
Im Verzeichnis de.metas.endcostumer.mf15.dist (das bei mir ein Archiv ist) gibt es kein Target.
Vielleicht hakt es doch noch woanders, ich lösche mal das Archiv und schaue, ob es dann klappt.

Der Maven Fehler ist

Failed to execute goal com.akathist.maven.plugins.launch4j:launch4j-maven-plugin:1.7.16:launch4j (l4j-clui) on project de.metas.endcustomer.mf15.swingui: Failed to build the executable; please verify your configuration.: Invalid data: File version, should be ‘x.x.x.x’

Danke Dir fürs ausprobieren :slight_smile:

Der Maven Fehler ist

Ah, ja. Danke. Werde ich auch nach schauen.

Sollte mit diesem commit gefixt sein.
Wieder in metasfresh-parent…

Noch zum Hintergrund: der Unterschied kommt daher, dass Eclipse das launch4j Plugin complet ignoriert.
Dieses Plugin erstellt eine exe-Datei für unseren (weitgehend obsoleten) metasfresh Swing Desktop client.

Klappt prima.
Vielen Dank nochmal, auch für die Hintergrundinfo. :slight_smile:

1 Like