Como você suprimir a substituição de propriedade ao criar um projeto a partir de um arquétipo?

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

  •  18-09-2019
  •  | 
  •  

Pergunta

Eu estou tentando criar um arquétipo para um projeto simples, este projeto contém alguns certificados SSL que eu gostaria de inclui como recursos no arquétipo por isso, quando o projeto é criado esses certificados serão parte do projeto. Meu problema é que o perito está tentando fazer uma substituição de propriedade sobre esses certificados ao criar um projeto com o arquétipo. Existe uma maneira de contar maven não fazer a substituição propriedade? Eu já tentei o seguinte:

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

no meu protótipo pom.xml. Alguma idéia?

Foi útil?

Solução

Eu não tenho certeza qual é seu problema exatamente é (são os seus arquivos xml certificados ??) mas meu palpite é que ela está relacionada ao fato de que a maioria dos conteúdos não binário de um arquétipo é processado pela velocidade durante a criação (ver ARQUÉTIPO-90 sobre este problema).

A solução é configurar o criar -do-projeto mojo ter arquivo não filtrada por padrão usando:

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

Ele define as extensões de arquivos que serão filtrados e o valor padrão incluem java, xml, txt, vm, groovy, jsp, gsp, vm e properties. Então excluir xml nesta lista se você não quer xml a ser filtrado.

Outra opção seria para especificar metadados personalizados para o seu arquétipo, algo como isto em 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>

desta página para obter mais detalhes sobre metadados arquétipo.

Outras dicas

Eu tive um problema semelhante tentando usar $ {basedir} no arquétipo de recursos / pom.xml mas foi sendo substituído quando o correu arquétipo para criar o projeto e assim apontou para o diretório errado.

A correção é simples. uso apenas \ $ {basedir} em vez disso. Este escapa o sinal $ e evita Maven substituí-lo quando o arquétipo é executado. Em seguida, o arquivo pom.xml gerado conterá $ {basedir} em vez do diretório que o correu arquétipo de.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top