Лучше ли Mavenize файлы вашего проекта JAR или поместить их в WEB-INF/lib?
Я делал это для всех jar-файлов, которые нужны моему проекту Spring MVC:
call mvn install:install-file -DgroupId=vegetables -DartifactId=potatoes -Dversion=1.0 -Dfile=vegetables-1.0.jar -Dpackaging=jar -DgeneratePom=true
Недавно я, должно быть, превысил ограничение на количество зависимостей, которые вы можете перечислить в своем pom.xml
файл, потому что я получил сообщение об ошибке:
Your command line is too long
Поэтому я удалил некоторые зависимости из pom.xml
что мой проект больше не использует, и я смог снова запустить проект с Maven.
У меня вопрос, должен ли я установить все файлы jar в свой репозиторий Maven, как я делал до сих пор? Или я должен положить некоторые из них в WEB-INF/lib
каталог?
Какова лучшая практика здесь?
3 ответа
Я делал то же самое, что вы делаете с командной строкой, но настраивая maven-install-plugin
в моем ПОМ (пожалуйста, прочтите примечание в конце):
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-install-plugin</artifactId>
<executions>
<execution>
<id>install-vegetables</id>
<phase>initialize</phase>
<goals>
<goal>install-file</goal>
</goals>
<configuration>
<file>${project.basedir}/lib/vegetables-1.0.jar</file>
<groupId>vegetables</groupId>
<artifactId>potatoes</artifactId>
<version>1.0</version>
<packaging>jar</packaging>
</configuration>
</execution>
<execution>
<id>install-minerals</id>
<phase>initialize</phase>
<goals>
<goal>install-file</goal>
</goals>
<configuration>
<file>${project.basedir}/lib/minerals-1.0.jar</file>
<groupId>minerals</groupId>
<artifactId>rocks</artifactId>
<version>1.0</version>
<packaging>jar</packaging>
</configuration>
</execution>
</executions>
</plugin>
Это гораздо менее эффективно, потому что файлы устанавливаются снова и снова, но это гораздо менее раздражает, чем делать это вручную. Во всяком случае, я думаю, вы должны попробовать.
Все ваши зависимости должны находиться в локальном хранилище. В соответствии с конвенцией / рекомендациями Maven, вы не должны хранить файлы JAR в своем проекте.
Преобразуйте свой проект в полностью военный проект Maven. Это поместит все ваши зависимости (jar-файлы) в ваш веб-приложение WEB-INF/lib
каталог. Таким образом, вам не придется беспокоиться о длинных путях.
Вам просто нужно добавить зависимости в ваш файл pom.xml, не нужно устанавливать их вручную. Maven загрузит библиотеки и поместит их в ваш локальный репозиторий при необходимости. Только если вы хотите использовать сторонние (пользовательские) библиотеки, вы можете установить их в своем локальном хранилище.