maven2 использует библиотеки в определенной папке во время компиляции

#maven-2 #jar #build-process

#maven-2 #jar #процесс сборки

Вопрос:

В структуре моего проекта есть папка с именем /libs, которая содержит все необходимые библиотеки, которые понадобятся моему проекту во время компиляции. Возможно ли, что я сказал maven2 в процессе компиляции использовать эти библиотеки вместо зависимостей или чего-то еще. что еще?

Итак, я вызываю mvn compile war:war, и после этого my .war содержит библиотеки из папки / libs.

BR, mybecks

Ответ №1:

Я полагаю, вы ищете системные зависимости, такие как

 <project>
  ...
  <dependencies>
    <dependency>
      <groupId>foo</groupId>
      <artifactId>bar</artifactId>
      <version>2.0.0</version>
      <scope>system</scope>
      <systemPath>${project.basedir}/libs/foo-bar-2.0.0.jar</systemPath>
    </dependency>
  </dependencies>
  ...
</project>
  

Системные зависимости не будут скопированы в файл war — возможно, вы сможете достичь этого, поместив их в src/main/webapp/WEB-INF/lib каталог вместо ${project.basedir}/libs .

ОТКАЗ ОТ ОТВЕТСТВЕННОСТИ: Я просто попытался ответить на вопрос и не рекомендую решение для всех зависимостей.

Комментарии:

1. когда я копирую их в папку /WEB-INF / lib, мне больше не нужна зависимость или?

2. @mybecks Maven будет использовать зависимости для генерации пути к классу, который вам нужно скомпилировать. Maven не будет извлекать эти банки без определения зависимостей — таким образом, они вам понадобятся. Кажется, что вы пытаетесь использовать maven при довольно «обычной» настройке проекта. Поскольку maven во многом работает по соглашению о настройке (например, по расположению каталогов ), будет трудно достичь того, чего вы могли бы хотеть.