2011-11-03 11 views
6

Sto usando NewRelic per il monitoraggio. Voglio che Maven impacchetta entrambi i file newrelic.jar e newrelic.yaml nel mio WEB-INF/lib all'interno del file di guerra. Con newrelic.jar non ci sono problemi poiché si tratta di una semplice dipendenza, ma newrelic.yaml è un file di risorse. Risiede nella directory delle risorse. Voglio Maven (plugin di guerra) per copiarlo in WEB-INF/lib durante il confezionamento della guerra.Come rendere Maven copiare il file di risorse nella directory WEB-INF/lib?

Grazie.

Alex

+2

Non dovresti averlo inserito in 'WEB-INF/classes' di default? Questo è dove le risorse non JAR devono andare sul classpath –

+0

@mattb sei corretto, è così che dovrebbe essere, ma nei documenti new-relics dicono che entrambi i file devono essere nella stessa cartella [collegamento ai documenti ] (http://newrelic.com/docs/java/using-new-relic-with-aws-elastic-beanstalk) – AlexV

+0

che sembra strano. Sarebbe inusuale per una classe cercare risorse specificamente in 'WEB-INF/lib' piuttosto che caricarla dal classpath –

risposta

9

Mentre sono d'accordo con @ Matt b che questo è strano, ecco cosa si può fare:

provare a cambiare la configurazione del plugin guerra Maven per includere un WebResource:

<configuration> 
     <webResources> 
     <resource> 
      <directory>pathtoyaml</directory> 
      <includes> 
      <include>**/*.yaml</include> 
      <includes>   
     <targetPath>WEB-INF/lib</targetPath> 
     </resource> 
     </webResources> 
    </configuration> 

La directory è relativo al pom.xml. Vedi the plugin's documentation per maggiori informazioni.

+0

Ha funzionato, grazie. – AlexV

0
  1. Si dovrebbe provare ad aggiungere file di .yaml alle risorse di newrelic.jar, successivamente è possibile accedervi tramite classpath.
  2. o provare a cambiare/sovrascrivendo bersaglio build.xml costruire con l'aggiunta di qualcosa di simile a < copia file = "YAML" adir = "WEB-INF/lib" />

Prova googling per maggiori informazioni su come cambiare build.xml.

+0

Non ho il controllo di newrelic.jar, è una terza parte. Cercano il file di configurazione .yml nella stessa directory in cui si trova il jar. Un'altra cosa, sto usando Maven quindi non c'è build.xml per me. – AlexV

4

È inoltre possibile specificare la maggior parte della configurazione per l'agente New Relic inclusa la posizione del file di configurazione tramite flag passati al comando java. In questo caso, si tratta di qualcosa di simile a:

-Dnewrelic.config.file =/etc/newrelic.yml

(ok, è esattamente così, ma è necessario specificare qualsiasi percorso che vi serve se non è così .)