Как заставить Maven скопировать файл ресурсов в каталог WEB-INF/lib?

Я использую NewRelic для мониторинга. Я хочу, чтобы Maven упаковал файлы newrelic.jar и newrelic.yaml в мой WEB-INF/lib внутри файла войны. С newrelic.jar проблем не возникает, поскольку это простая зависимость, но newrelic.yaml — это файл ресурсов. Он находится в каталоге ресурсов. Я хочу, чтобы Maven (плагин войны) скопировал его в WEB-INF/lib при упаковке войны.

Спасибо.

Алекс


person AlexV    schedule 03.11.2011    source источник
comment
Разве maven не должен помещать его в WEB-INF/classes по умолчанию? Здесь ресурсы, отличные от JAR, должны идти по пути к классам.   -  person matt b    schedule 03.11.2011
comment
@mattb вы правы, так и должно быть, но в документах new-relics говорится, что оба файла должны находиться в одном и том же каталоге ссылка на документацию   -  person AlexV    schedule 03.11.2011
comment
это кажется странным. Для класса было бы необычно искать ресурсы именно в WEB-INF/lib, а не просто загружать их из пути к классам.   -  person matt b    schedule 03.11.2011
comment
@mattb Я думаю, это потому, что этот jar используется для инструментовки ( -javaagent=newrelic.jar ), и я использую эластичный бобовый стебель Amazon, поэтому мне нужно упаковать и развернуть эту войну мониторинга самостоятельно.   -  person AlexV    schedule 03.11.2011


Ответы (3)


Хотя я согласен с @matt b, что это странно, вот что вы можете сделать:

Попробуйте изменить конфигурацию плагина maven war, чтобы включить веб-ресурс:

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

Каталог относится к pom.xml. Дополнительную информацию см. в документации плагина. .

person Chris    schedule 03.11.2011

Вы также можете указать большую часть конфигурации для агента New Relic, включая расположение файла конфигурации, с помощью флагов, переданных команде java. В этом случае это что-то вроде:

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

(хорошо, это именно так, но вам нужно указать любой путь, который вам нужен, если это не так.)

person fool    schedule 31.07.2012

  1. Вам следует попробовать добавить файл .yaml в ресурсы newrelic.jar, позже вы сможете получить к нему доступ через путь к классам.
  2. Или попробуйте изменить/переопределить цель сборки build.xml, добавив что-то вроде ‹ copy file=".yaml" todir="WEB-INF/lib" />

Попробуйте поискать в Google дополнительную информацию об изменении build.xml.

person JMelnik    schedule 03.11.2011
comment
Я не контролирую файл newrelic.jar, он принадлежит третьей стороне. Они ищут файл конфигурации .yml в том же каталоге, где находится jar. Другое дело, я использую Maven, поэтому для меня нет build.xml. - person AlexV; 03.11.2011