Frage

Ich versuche, einen Archetyp für ein einfaches Projekt zu erstellen, enthält dieses Projekt einig SSL-Zertifikate, die Mich mögen würde als Ressourcen in dem Archetyp zu gehören so, wenn das Projekt, diese Zertifikate erstellt wird, wird ein Teil des Projektes sein. Mein Problem ist, dass Maven versucht, eine Eigenschaft Ersatz auf diesen certs zu tun, wenn ein Projekt mit dem Urbild zu schaffen. Gibt es trotzdem Maven zu sagen, nicht die Eigenschaft, Ersatz zu tun? Ich habe bereits versucht, die folgenden:

    <resources>
  <resource>
    <directory>src/main/resources</directory>
    <filtering>true</filtering>
    <includes>
      <include>**/*.xml</include>
    </includes>
  </resource>
  <resource>
    <directory>src/main/resources</directory>
    <filtering>false</filtering>
    <excludes>
      <exclude>**/*.xml</exclude>
    </excludes>
  </resource>

in meinem Prototyp pom.xml. Irgendwelche Ideen?

War es hilfreich?

Lösung

Ich bin mir nicht sicher, was das Problem genau ist (sind Ihre Zertifikate XML-Dateien ??), aber meine Vermutung ist, dass es mit der Tatsache verbunden ist, dass die meisten nicht binärer Inhalt einer Urform durch die Geschwindigkeit bei der Erstellung verarbeitet wird (siehe Archetypus 90 über dieses Problem).

Eine Abhilfe ist die erstellen konfigurieren -von-Projekt mojo Datei ungefiltert standardmäßig hat mit:

-Darchetype.filteredExtentions=ext1,ext2,...

Sie legt die Erweiterungen für Dateien, die gefiltert werden und der Standardwert sind java, xml, txt, vm, groovy, jsp, gsp, vm und properties. So xml aus dieser Liste ausgeschlossen werden, wenn Sie nicht wollen xml gefiltert werden.

Eine andere Möglichkeit wäre, um benutzerdefinierte Metadaten für Ihr Urbild, so etwas wie dies in src/main/resources/META-INF/maven/archetype-metadata.xml angeben:

<?xml version="1.0" encoding="UTF-8"?>
<archetype-descriptor name="myarchetype">
  <fileSets>
    <fileSet filtered="false" encoding="UTF-8">
      <directory>src/foobar</directory>
      <includes>
        <include>**/*.xml</include>
      </includes>
    </fileSet>
  </fileSets>
</archetype-descriptor>

Siehe Diese Seite mehr Details zu Urbild Metadaten.

Andere Tipps

Ich hatte ein ähnliches Problem versuchen, $ verwenden {basedir} in Urbild-Ressourcen / pom.xml aber es ersetzt wurde, als das Urbild das Projekt erstellen lief und deutete so auf das falsche Verzeichnis.

Die Lösung ist einfach. Verwenden Sie einfach \ $ {basedir} statt. Dies entgeht dem $ -Zeichen und verhindert, dass Maven von ihm zu ersetzen, wenn das Urbild ausgeführt wird. Dann erzeugt pom.xml Datei $ enthalten {basedir} anstelle des Verzeichnisses, das Urbild lief aus.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top