Maven-Projekt-Variablen für Abhängigkeiten
Ich habe eine html-Datei, die lädt, die ein applet. Die html-Bedürfnisse zu finden, um das Glas von Namen, und da maven-Namen auf der Grundlage der artifactid, version, etc, das html muss dynamisch aktualisiert werden, wie sich das Projekt entwickelt. Wie es scheint, Ressource Filterung ist der Weg zu gehen, aber ich kann nicht herausfinden, was die variable zu interpolieren Aussehen sollte. Ich würde gerne etwas entlang der Linien von ${project.Abhängigkeiten.myartifactid.version}, aber das scheint nicht eine option, und ich habe die leidvolle Glück googeln.
InformationsquelleAutor Erik Ackerman | 2010-02-10
Du musst angemeldet sein, um einen Kommentar abzugeben.
Müssen Sie etwas wie
${project.dependencies[0].artifactId}
wo0
ist der index der Abhängigkeit des Applets in Ihre Krieg-Modul (siehe PLXUTILS-37). Und in der Tat, unter Verwendung von Ressourcen-Filterung funktionieren sollte.Update: scheint es, dass Es Fehler in der Maven-Resources-Plugin, das diese Eigenschaft nicht gefiltert, wie erwähnt, in diese Frage. Sie müssen möglicherweise verwenden Sie die Problemumgehung vorgeschlagen, in diese Antwort.
Ja, es wird brüchig (z.B. hinzufügen einer Abhängigkeit zu brechen könnte alles also diesem müssen dokumentiert werden), aber leider, ich glaube nicht, dass es etwas besser.
tatsächlich dies funktioniert nur, bis maven-antrun-plugin-version 1.3. Von 1,4 onward ${project.Abhängigkeiten[0].artifactId} wird nicht mehr interpoliert.
InformationsquelleAutor Pascal Thivent
Wie ich es verstehe, Sie versuchen, die version up-to-date, während Sie erwartete, dass der rest bleiben die gleichen. Es gibt zwei alternativen.
Die erste ist, entfernen Sie die version von den Namen, so dass die HTML-müssen nicht geändert werden. Sie können sehen, ein Beispiel aus der Praxis von der Suche nach
archiva-applet
hier: http://svn.apache.org/repos/asf/archiva/tags/archiva-1.3/archiva-modules/archiva-web/archiva-webapp/pom.xmlIn diesem Beispiel, da Sie nicht wollen, das applet in
WEB-INF/classes
jedenfalls ist es nicht in die webapp und dann über das Dependency plugin:Wenn Sie mit Maven 2.1.0+ können Sie die
prepare-package
phase und kopieren Sie Sie direkt an den Ausgang ohne die Quelle zu ändern-Verzeichnis.Sie verweisen dann auf das applet in HTML-Seiten mit den einzelnen Namen.
Alternative Lösung, wenn Sie wollen, weiter zu filtern und halten Sie die version, ist die Verwendung einer gemeinsamen Eigenschaft:
...
...
Dann können Sie
${applet.version}
im HTML nur noch und ändern es an einer Stelle.InformationsquelleAutor Brett Porter
Vom http://docs.codehaus.org/display/MAVENUSER/MavenPropertiesGuide:
Anderen option, die Sie haben, ist zu ändern, setzen
${project.build.finalName}
auf einen statischen string in Ihre POM:Wusste nicht, das GLAS war eine Abhängigkeit. Dann, ja, das wird nicht helfen.
InformationsquelleAutor matt b