Come si fa a sopprimere la sostituzione di proprietà durante la creazione di un progetto da un archetipo?

StackOverflow https://stackoverflow.com/questions/1878742

  •  18-09-2019
  •  | 
  •  

Domanda

Sto cercando di creare un archetipo per un progetto semplice, questo progetto contiene alcuni certificati SSL che mi piacerebbe comprende come risorse nel archetipo in modo che quando il progetto viene creato quei certs sarà parte del progetto. Il mio problema è che Maven sta cercando di fare una sostituzione di proprietà su quei certs durante la creazione di un progetto con l'archetipo. Esiste un modo per dire a Maven di non fare la sostituzione di proprietà? Ho già provato il seguente:

    <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>

nel mio prototipo pom.xml. Tutte le idee?

È stato utile?

Soluzione

Non sono sicuro di ciò che il tuo problema è esattamente (sono i certificati file XML ??) ma la mia ipotesi è che è legato al fatto che la maggior parte del contenuto non binario di un archetipo viene elaborato per la velocità durante la creazione (vedere ARCHETYPE-90 su questo problema).

Una soluzione è quella di configurare il creare -da-progetto mojo di avere il file non filtrata di default utilizzando:

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

Esso definisce le estensioni per i file che verranno filtrati e il valore di default includono java, xml, txt, vm, groovy, jsp, gsp, vm e properties. Quindi escludere xml da questa lista, se non si vuole xml da filtrare.

Un'altra opzione sarebbe quella di specificare i metadati personalizzati per il vostro archetipo, qualcosa di simile in src/main/resources/META-INF/maven/archetype-metadata.xml:

<?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>

questa pagina per ulteriori dettagli su metadati archetipo.

Altri suggerimenti

Ho avuto un problema simile tentativo di utilizzare $ {} basedir in archetipo-risorse / pom.xml ma veniva sostituito quando l'archetipo corse per creare il progetto e quindi indicò la directory sbagliata.

La soluzione è semplice. Basta usare \ $ {} BASEDIR invece. Questo sfugge il simbolo $ e impedisce Maven da sostituire quando viene eseguito l'archetipo. Poi il file pom.xml generato conterrà $ {} basedir al posto della directory che l'archetipo correva da.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top