Wenn man zum dritten Mal in einem Jahr in einem MRT namens Harmony Maestro Class liegt, der allerdings ziemlich unharmonisch schlimmer röhrt als ein brünftiger Hirsch, kommt man auf Gedanken. So beschwerte sich die messende Ärztin, dass das doch alles sowieso keinen Sinn hat und man wegen der Budgetierung nichts mehr verdienen kann. Leistungsgesellschaft? Nicht in der Medizin. Dort wird die Planwirtschaft praktiziert. Diese wurde eingeführt, um die ausufernd steigenden Kosten im Gesundheitswesen zu bremsen. Vermutlich, um durch die Regelung neue Schlupflöcher aufzureissen, die dann folgerichtig ausgenutzt werden, um wiederum durch noch komplexere Regelungen geschlossen zu werden. So ist das nun einmal, wenn man versucht, den Markt durch den Plan zu deckeln. Hmm? Aber ist da überhaupt ein Markt? Eigentlich nicht. Die Menge des Geldes, welches diesem Markt pro Jahr zur Verfügung steht, ist recht fix, abgeleitet durch das Einkommen der gesetzlich Krmankenversicherten. Und ändert sich daran etwas, wenn eine Bürgerversicherung eingeführt wird? Nö, das System ist schliesslich das gleiche. Und daran krankt es. Deswegen ist es im Grunde egal, wie diese Sozialversicherungen zu ihrem Geld kommen. Es wird immer in einer Planwirtschaft enden.
In einigen Punkten macht die technische Projektverwaltung von Maven schon Probleme. In "Maven und das Class-Path Attribut" habe ich beschrieben, wie man mit Problemen mit eben diesem Class-Path in Manifestdateien umgehen kann. Ein weiteres Problem ist die Verwendung von Projekten, die wiederum aus unterschiedlichen Projekten zusammen gebaut werden. Axis vom Apache ist ein solches. Es baut auch unterschiedlichsten Projekte wie log4j oder commons-discovery auf. Wie legt man diese Projekte in einem Maven-Repository an? Werden alle Artefakte in einer Gruppe, z.B. axis gesammelt? Oder werden die Artefakte auf unterschiedliche Gruppen verteilt? Und wenn man sie verteilt, wie werden sie dann für das Konfigurationsmanagement wieder gefunden?
Ich habe mich für die zweite Variante entschieden. Dies vor dem Hintergrund, dass es Maven, beim build mehrerer zusammengehöriger Projekte über den Reaktor, erlaubt, einfach Abhängigkeitsinkonsistenzen (Versionskonflikte) zu finden. Diese werden in einen Report geschrieben, den der Konfigurationsmanager leicht überwachen kann. Sind die Artefakte nicht in der gleichen Gruppe, dann werden diese Versionskonflikte nicht gefunden.
Das Problem des Wiederfindens haben wir durch eine Hilfsdatei gelöst, die zusätzlich zu den Axis-Artefakten, im jars Verzeichnis abgelegt wird und für die entsprechenden Versionen ein depedencies Snippet bereit stellt. Derjenige, der ein neues Projekt für z.B. Axis 1.2.1 aufsetzen muss, ist es ausreichend dieses Snippet in das <dependencies>-Element der project.xml zu kopieren.
