Pergunta

Sou um usuário de longa data do sistema de criação, mas decidi começar a aprender o sistema de construção do Maven. Enquanto eu lia a maioria dos documentos on -line, nenhum parece me dar as analogias que estou procurando. Entendo o ciclo de vida do sistema, mas não vejo uma referência para compilar dependências de etapas. Por exemplo, quero gerar uma gramática JFLEX como parte da etapa do ciclo de vida de compilação. Atualmente, não vejo como fazer essa etapa uma etapa de fase pré-compile. A documentação parece ser limitada nisso. Em geral, o conceito de dependências de etapas parece ser assado no Maven e exige um plug -in para qualquer alteração. É este o caso? O que estou perdendo, porque atualmente o sistema de construção do Maven parece muito limitado na maneira como você pode configurar etapas de compilação.

Foi útil?

Solução

Você pode fazer qualquer coisa no Maven. Geralmente, ele tem uma maneira padrão de fazer cada coisa e, em seguida, você pode conectar e substituir se quiser fazer algo especial. Às vezes, é preciso muita pilha transbordando e arranhando a cabeça para descobrir.

Existe até um oficial Plugin jflex maven.

Sempre que possível, encontre alguém que tenha feito um plugin Maven, faça o que quiser. Mesmo que não esteja 100% certo, pode pelo menos ter uma idéia de como fazer o Maven fazer algo.

Configuração mínima

Esta configuração gera código Java de um analisador para todos os arquivos gramaticais (.jflex, *.jlex, *.Lex, .flex) encontrado em src/main/jflex/e seus subdiretos. O nome e o pacote do código -fonte Java gerado são os definidos na gramática. O código-fonte Java gerado é colocado no Target/Gerated-Source/Jflex, em subdiretos após a Convenção Java sobre nomes de pacotes. pom.xml

<project>
  <!-- ... -->
  <build>
    <plugins>
      <plugin>
        <groupId>de.jflex</groupId>
        <artifactId>jflex-maven-plugin</artifactId>
        <version>1.6.0</version>
        <executions>
          <execution>
            <goals>
              <goal>generate</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
    </plugins>
    <!-- ... -->
  </build>
  <!-- ... -->
</project>

Parece a maneira Maven de fazer as coisas. Coloque suas coisas nas pastas certas (SRC/Main/Flex) e este plug -in criará automaticamente no seu projeto. Se você quiser Faça coisas personalizadas mais sofisticadas, existem algumas opções. Mas o MAVEN tem tudo a ver com favorecer a Convenção sobre a configuração.

Outras dicas

Para ser franco, acho que sua mentalidade atual mapeia muito melhor do que o Maven, e eu sugeriria começar com isso.

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