2009-03-21 8 views
13

Ecco un profilo di esempio nel mio POM:Come posso eseguire una webapp Maven in Eclipse quando utilizzo i profili per popolare i file delle proprietà al momento della compilazione?

<profiles> 
    <profile> 
     <id>QA</id> 
     <activation> 
      <activeByDefault>true</activeByDefault> 
     </activation> 
     <properties> 
      <jdbc.url>jdbc:mysql://127.0.0.1:3306/SomeDB</jdbc.url> 
      <jdbc.username>webapp</jdbc.username> 
      <jdbc.password>somepassword</jdbc.password> 
     </properties> 
    </profile> 
    ... 

poi ho un file di proprietà nella mia cartella risorse in questo modo:

jdbc.url = ${jdbc.url} 
jdbc.username = ${jdbc.username} 
jdbc.password = ${jdbc.password} 

e alla fine ho girare il filtraggio nella mia POM:

<build> 
    <resources> 
     <resource> 
      <directory>src/main/resources</directory> 
      <filtering>true</filtering> 
     </resource> 
    </resources> 
    ... 

Questo è in realtà un esempio semplificato, ma si ottiene l'idea. Fondamentalmente quando corro

mvn installare -P QA

Maven filtrerà mio file app.properties, sostituire tutti i segnaposto con i valori contenuti nel profilo, e distribuire il file delle proprietà popolate.

Il problema di tutto questo è che mi piace utilizzare il meccanismo Server in Eclipse, dove Tomcat è in esecuzione all'interno dell'IDE. I miei progetti vengono eseguiti in questa istanza ed Eclipse si occupa dell'aggiornamento, della ridistribuzione e così via. Maven viene lasciato fuori dall'immagine, tuttavia, durante le distribuzioni all'interno dell'IDE e questo file delle proprietà non viene mai compilato correttamente.

Quindi, come posso continuare a eseguire il mio progetto all'interno dell'IDE, ma questo file delle proprietà è correttamente compilato?

risposta

2

Grazie Alex. Ho finito per installare Eclipse Integration for Apache Maven (Eclipse IAM), formerly Q for Eclipse

Questo plugin ha risolto due problemi: popolando i file delle proprietà durante gli eventi Pubblica su server in Eclipse e popolando la cartella WEB-INF/lib. Prima, anche se stavo eseguendo mvn eclipse: eclipse per soddisfare il mio percorso di costruzione in Eclipse, non stava pubblicando correttamente queste dipendenze con i server incorporati. Questo plugin lo fa. Avendo risolto questi due problemi, non vedo nessun altro ostacolo allo sviluppo di un progetto Maven in Eclipse usando i server integrati.

3

È possibile eseguire in modo efficace qualsiasi comando Maven (inclusi quelli con profili) tramite il plug-in m2eclipse. Inoltre, m2eclipse funziona con WTP (che credo sia da dove proviene la scheda Server). Non sono sicuro su questa parte, ma l'ho usato per distribuire app Web a Tomcat all'interno di Eclipse per un progetto Maven.

Problemi correlati