Domanda

Sono stato un utente molto tempo del sistema di compilazione fare, ma ho deciso di iniziare ad imparare il sistema di generazione Maven. Mentre ho letto attraverso la maggior parte dei documenti online, nessuno sembra dare me le analogie che sto cercando. Capisco il ciclo di vita del sistema, ma non ho vedere un riferimento a dipendenze passo di compilazione. Ad esempio, voglio generare una grammatica JFlex come parte della fase del ciclo di vita di compilazione. Attualmente, non vedo modo di fare quel passo un passo fase di pre-compilazione. La documentazione sembra essere limitato a questo. In generale, il concetto di dipendenze passo sembra essere cotto in Maven e richiedono un plugin per alcuna alterazione. E 'questo il caso? Quello che mi manca, perché attualmente il sistema di generazione di Maven sembra molto limitata in come è possibile passi di compilazione di impostazione.

È stato utile?

Soluzione

Si può fare qualsiasi cosa in Maven. Ha in genere un modo predefinito per fare ogni cosa, e poi si può agganciare e ignorare se si vuole fare qualcosa di speciale. A volte ci vuole un sacco di Pila Traboccante e grattarsi la testa per capirlo.

C'è anche un funzionario JFlex Maven plug .

Quando possibile, trovare qualcuno che ha fatto un Maven plug fare quello che vuoi. Anche se non è al 100% a destra, si può almeno dare un'idea su come fare Maven fare qualcosa.

Configurazione minima

Questa configurazione genera il codice Java di un parser per tutti i file di grammatica ( .jflex, * .jlex, * .lex, .flex) in src / main / JFLEX / e il suo sub-directory. Il nome e il pacchetto del codice sorgente Java generato sono quelli definiti nella grammatica. Il codice sorgente di Java generato è posto in target / generata-source / JFLEX, in sotto-directory seguenti la convenzione Java sui nomi dei pacchetti. 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>

questo si sente come il modo Maven per fare le cose. Mettere la roba nelle cartelle destro (src / main / Flex), e questo plugin automaticamente costruire nel progetto. Se si vuole fare cose personalizzato elaborato, ci sono alcune opzioni . ma Maven è tutto di favorire convenzione sulla configurazione.

Altri suggerimenti

Per essere onesti penso che la vostra mentalità corrente mappe molto meglio formica rispetto a Maven, e vorrei suggerire a cominciare da quello.

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