Лучше ли 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 загрузит библиотеки и поместит их в ваш локальный репозиторий при необходимости. Только если вы хотите использовать сторонние (пользовательские) библиотеки, вы можете установить их в своем локальном хранилище.

Другие вопросы по тегам