Cairngorm 3 & Maven

Was für ein Krampf - dieses Maven!

Eigentlich wollte ich ja das open-source Framework Cairngorm, von Adobe, nutzen. Cairngorm soll, so wie eigentlich fast jedes Framwork, ein Fundament für ein hoch qualitatives Flex-App bilden. Nach einigem Lesen, macht es echt einen sehr viel versprechenden Eindruck auf mich.

Nun habe ich schon die alte Version zwei aus dem Jahr 1997 gesehen (also die Webseiten dazu, nicht den Code) und irgendwie habe ich erwartet dass es auch bei der Version drei aus diesem Jahr so sein wird, dass man einfach die Bibliotheksdatei (.swc) runterladen kann. Denkste! Nun wird alles in einem Maven Repository "bereit gestellt". Maven ist ein Projektmanagement-Tool. An sich eine tolle Sache - nur entweder verstehe ich das ganze nicht richtig und es funktioniert einfach nicht.

Maven ist dazu da um sicher zu stellen, dass ein Projekt alle nötigen Abhängigkeiten zur Verfügung hat. Man definiert Konfigurationsdateien und Maven besorgt sich dann benötigte Bibliotheken und der gleichen von Repositories. Weiterhin kann sich Maven darum kümmern Unittests durchzuführen, Code zu komplilieren und zu packen.

Mein Ziel war es also an die Bibliotheksdatei der letzten Cairngorm Version zu kommen. Dazu muss man als erstes einen check-out vom Adobe SVN-Repository machen: http://opensource.adobe.com/svn/opensource/cairngorm3/ . Dann hat man eine Menge Zeug auf seiner Platte, den man nicht direkt nutzen kann. Jetzt kommt Maven ins Spiel (das an dieser Stelle natürlich bereits lokal installiert sein muss). Wenn ich das mit Maven richtig verstanden haben, muss man nur mvn install aufrufen. Das klappt beim ersten Versuch nicht, weil Adobe nicht alle nötigen Bibliotheken richtig verlinkt hat (warum noch mal nutzen wir Maven!?). Man muss diese zwei fehlenden Teile manuell in sein lokales Maven-Repository installieren (das witzige, die Dateien sind nach dem SVN-check-out lokal vorhanden!):

Nummer 1:
mvn install:install-file -DgroupId=com.adobe.lcds -DartifactId=fds_rb -Dversion=2.6.1 -Dclassifier=en_US -Dpackaging=rb.swc -Dfile="{Cairngorm3-SVN-checkout}\tags\cairngorm3-3.0.11\libraries\Integration\libs\fds_rb-2.6.1.rb.swc"

Ausgabe:

[INFO] Scanning for projects...
[INFO] Searching repository for plugin with prefix: 'install'.
[INFO] org.apache.maven.plugins: checking for updates from local
[INFO] org.apache.maven.plugins: checking for updates from central
[INFO] org.codehaus.mojo: checking for updates from local
[INFO] org.codehaus.mojo: checking for updates from central
[INFO] ------------------------------------------------------------------------
[INFO] Building Maven Default Project
[INFO]    task-segment: [install:install-file] (aggregator-style)
[INFO] ------------------------------------------------------------------------
[INFO] [install:install-file {execution: default-cli}]
[INFO] Installing {Cairngorm3-SVN-checkout}\tags\cairngorm3-3.0.1\libraries
\Integration\libs\fds_rb-2.6.1.rb.swc to {user}\.m2\repositor\com\adobe\lcds
\fds_rb\2.6.1\fds_rb-2.6.1-en_US.rb.swc
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESSFUL
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 3 seconds
[INFO] Finished at: Tue Jun 01 15:55:38 CEST 2010
[INFO] Final Memory: 5M/59M
[INFO] ------------------------------------------------------------------------

Nummer 2:
mvn install:install-file -DgroupId=com.adobe.lcds -DartifactId=fds -Dversion=2.6.1 -Dpackaging=swc -Dfile="{Cairngorm3-SVN-checkout}\tags\cairngorm3-3.0.11\libraries\Integration\libs\fds-2.6.1.swc"

Ausgabe:

[INFO] Scanning for projects...
[INFO] Searching repository for plugin with prefix: 'install'.
[INFO] ------------------------------------------------------------------------
[INFO] Building Maven Default Project
[INFO]    task-segment: [install:install-file] (aggregator-style)
[INFO] ------------------------------------------------------------------------
[INFO] [install:install-file {execution: default-cli}]
[INFO] Installing {Cairngorm3-SVN-checkout}\tags\cairngorm3-3.0.11
\libraries\Integration\libs\fds-2.6.1.swc to {user}\.m2\repository\com\a
dobe\lcds\fds\2.6.1\fds-2.6.1.swc
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESSFUL
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 1 second
[INFO] Finished at: Tue Jun 01 15:56:18 CEST 2010
[INFO] Final Memory: 6M/74M
[INFO] ------------------------------------------------------------------------

So und nun kann man theoretisch mvn install ausführen. Das Ergebnis sollte sein, dass alle Bibliotheken kompiliert und gepackt werden. Nur leider werden ausschließlich die Cairngorm-Zusatz-Bibliotheken gebaut, aber nicht Cairngorm selbst. Ich habe das in so gut wie jedem Ordner ausprobiert: "\tags\cairngorm3-3.0.11", "\build-parent\", "\trunk" und noch viele andere. Es ist immer das Selbe, ich bekomme nicht meine erhoffte cairngorm-3.0.11.swc .

Und nun?!


Update

Enterprise Development with Flex: Best Practices for RIA Developers

Sämtliche Aufregung war umsonst! Das was bei Cairngorm 2 in einer Bibliothek organisiert war, ist bei Cairngorm 3 in mehrere Teil-Bibliotheken organisiert. Wäre schon nett gewesen, wenn das irgendwo bei Adobe stehen würde!

Also das oben genannte Vorgehen führt zum Erfolg! 🙂

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.