2010-01-18 6 views
8

Ich verwende das Maven Appassembler Plugin, um meine Anwendung zu packen. Ich möchte einige Konfigurationsdateien mit der Anwendung verpacken. Ich habe die configurationDirectory und includeConfigurationDirectoryInClasspath Parameter gefunden, aber ich habe nicht gefunden, wie ich dieses Konfigurationsverzeichnis erstellen (und füllen) sollte. Ich habe versucht, die Dateien in src/main/resources zu setzen, aber das bringt sie nur in die JAR-Datei für mein Projekt.Wie schließe ich Konfigurationsdateien mit Maven Appassembler ein?

Was ist der "richtige" Weg, dies zu tun, mit Maven?

Antwort

7

Leider ist dies eine Einschränkung des Appassembler-Plugins in der aktuellen Release-Version. Normalerweise wird das Plugin in Verbindung mit dem Assembly-Plugin verwendet, um das endgültige Artefakt zu erzeugen, in das Sie den Verweis auf Ihr Konfigurationsverzeichnis aufnehmen können. Wenn Sie jedoch eine funktionale Struktur nur mit dem Appassembler-Plugin haben möchten, müssen Sie die Dateien manuell kopieren. Ein Beispiel mit dem antrun-Plugin mit einem src/main/conf-Verzeichnis finden Sie hier: http://svn.apache.org/viewvc/archiva/trunk/archiva-jetty/

+0

Vielen Dank für die Ant-Lauf :) –

0

Abgesehen davon ist nicht die bin-Skripte für verschiedene Plattformen zu generieren. Die maven-assembly-plugin kann (Paket (s) {tar.gz, zip}) für die Verteilung erstellen. Diese werden über eine assemble.xml konfiguriert. Sie geben an, welche Dateien (mit welchen Optionen (chmod)) usw. eintreffen. Sie können auch Dateien filtern (Werte in ihnen suchen/ersetzen). usw.

1

Standardmäßig verwendet das Plugin das Verzeichnis src/main/config.

ist möglich, die Quelle für die Konfigurationsdateien <configurationSourceDirectory>src/main/config</configurationSourceDirectory>

1

Wenn ich die copyConfigurationDirectory Unterkunft zählen über den Parameter zu ändern, kopiert es die Konfigurationsdateien und bündelt sie richtig.

<configurationDirectory>etc</configurationDirectory> 
    <configurationSourceDirectory>src/main/config</configurationSourceDirectory> 
    <copyConfigurationDirectory>true</copyConfigurationDirectory> 

Ich habe ein anderes Problem, obwohl. Ich möchte meine Konfigurationsdateien vor dem Kopieren filtern, was mir einige Probleme bereitet.

+0

Ich habe die gleiche Anforderung, aber konnte keine Lösung für dieses Problem finden – Jasonw

0

Jahre später und in der Version 1.10 des Plugins gibt es jetzt eine preAssembleDirectory Konfigurationsoption. Leider finde ich es nicht flexibel genug für meine Bedürfnisse, da es direkt in assembleDirectory kopiert und nicht erlaubt, einen Zielverzeichnispfad innerhalb von assemblyDirectory anzugeben.

Verwandte Themen