2014-07-26 15 views
5

Ho un progetto che consiste in un'app client javascript e un servizio web REST basato su Maven + Spring.app javascript (che utilizza grunt e browserify) in guerra

L'applicazione javascript è costruita utilizzando browserify e grunt. Per questo motivo non riesco a posizionare semplicemente il codice html/js nella directory src/main/webapp del mio progetto di servizio web basato su maven. Ciò che realmente deve finire qui è il contenuto della directory dist dell'applicazione javascript dopo la compilazione di browserify/grunt.

La domanda è: come posso impostare le cose in modo che l'app javascript sia impacchettata con la guerra del servizio web (si noti che questo dovrà includere i passi di costruzione grunt/browserify)?

+0

hai ottenuto questo lavoro? l'ho preso usando grunt-war – Sionnach733

+0

Ho finito per puntare il mio output dist dir su src/main/webapp. –

risposta

4

Ciò è possibile utilizzando il codice frontend-maven-plugin per utenti esperti. Io lo uso fare questi passaggi in ogni accumulo Maven:

  • Download e installazione Node.js (se doesnt esiste già)
  • pacchetti di aggiornamento NPM
  • Esecuzione mia frontend build (gulp)
  • Gulp compilerò il mio SASS e JS alle cartelle specificate nel plug-in

Posso anche attivare la generazione di gulp cambiando i file. Parte del mio POM (dovrebbe funzionare in modo simile per grunt):

 <plugin> 
      <groupId>com.github.eirslett</groupId> 
      <artifactId>frontend-maven-plugin</artifactId> 
      <version>0.0.26</version> 
      <configuration> 
       <workingDirectory>src/main/frontend</workingDirectory> 
       <installDirectory>.</installDirectory> 
      </configuration> 
      <executions> 
       <!-- Config from: https://github.com/eirslett/frontend-maven-plugin --> 
       <!-- phase optional for all executions: default phase is "generate-resources" --> 
       <!-- disable some of the following executions to improve build speed --> 
       <execution> 
        <id>install node and npm</id> 
        <goals> 
         <goal>install-node-and-npm</goal> 
        </goals> 
        <phase>generate-resources</phase> 
        <configuration> 
         <nodeVersion>v4.1.1</nodeVersion> 
         <npmVersion>3.3.3</npmVersion> 
         <nodeDownloadRoot>https://nodejs.org/dist/</nodeDownloadRoot> 
         <npmDownloadRoot>http://registry.npmjs.org/npm/-/</npmDownloadRoot> 
        </configuration> 
       </execution> 
       <execution> 
        <id>npm install</id> 
        <goals> 
         <goal>npm</goal> 
        </goals> 
        <phase>generate-resources</phase> 
        <configuration> 
         <arguments>install</arguments> 
        </configuration> 
       </execution> 
       <execution> 
        <id>gulp build</id> 
        <goals> 
         <goal>gulp</goal> 
        </goals> 
        <phase>generate-resources</phase> 
        <configuration> 
         <srcdir>src/main/frontend</srcdir> 
         <outputdir>src/main/webapp/resources</outputdir> 
         <arguments>build</arguments> 
        </configuration> 
       </execution> 
      </executions> 
     </plugin> 
+1

Mesi dopo ho anche trovato una soluzione come questa. Funziona bene, soprattutto per ridurre il numero di pre-requisiti. –

Problemi correlati