У меня есть папка lib в моем проекте с некоторыми внешними банками. Я использую maven-install-plugin, чтобы добавить эти банки в свой локальный репозиторий. Однако мне нужно создать отдельную конфигурацию для каждой устанавливаемой банки. Есть ли способ, с помощью которого я могу скопировать все банки в папке lib в локальный репозиторий.
установить все банки в папку с помощью maven-install-plugin
Ответы (2)
Вариант первый
Если содержимое каталога lib соответствует структуре каталогов в репозитории maven, то есть:
/lib/{groupid1}/{groupid2}/{artifactid}/{version}/{artifactid}-{version}.jar
Например:
/lib/commons-lang/commons-lang/2.6/commons-lang-2.6.jar
вы можете просто скопировать весь каталог в свой каталог ~/.m2/repository
cp -R lib/* ~/.m2/repository
Если нет, то вам придется устанавливать их по одному вручную, потому что у Maven нет возможности определить идентификатор группы исключительно по имени файла.
Вариант второй
Другим вариантом было бы вообще не помещать их в локальный репозиторий и вместо этого указывать systemPath в ваших тегах dependency в вашем pom.xml.
<dependency>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
<version>1.0.4</version>
<scope>system</scope>
<systemPath>${project.basedir}/lib/commons-logging-1.0.4.jar</systemPath>
</dependency>
Вам нужно указать, в частности, идентификатор группы, идентификатор артефакта и версию этого файла, потому что это координаты Maven, чтобы различать артефакты в Maven. Если у вас есть папка lib, лучше начните использовать менеджер репозитория и установите их в менеджер репозитория один раз, после чего вы сможете использовать их как обычные зависимости.