Лучше ли Mavenize JAR-файлы вашего проекта или поместить их в WEB-INF / lib? - PullRequest
1 голос
/ 04 июля 2011

Я делал это для всех 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 ]

10 голосов
/ 06 июля 2011

Я делал то же самое, что вы делаете с командной строкой, но настраивая maven-install-plugin в моем POM (пожалуйста, прочтите примечание в конце):

     <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>

Это намного менее эффективно, потому что файлы устанавливаются снова и снова, но это гораздо менее раздражает, чем делать это вручную. Во всяком случае, я думаю, вы должны попробовать.

3 голосов
/ 04 июля 2011

Все ваши зависимости должны находиться в локальном хранилище.В соответствии с конвенцией / рекомендациями Maven, вы не должны хранить файлы jar в своем проекте.

Преобразуйте ваш проект в полностью военный проект Maven.Это поместит все ваши зависимости (jar-файлы) в директорию WEB-INF/lib вашего веб-приложения.Таким образом, вам не придется беспокоиться о длинных путях.

0 голосов
/ 16 декабря 2011

Вам просто нужно добавить зависимости в ваш файл pom.xml, не нужно устанавливать их вручную.Maven загрузит библиотеки и поместит их в ваш локальный репозиторий при необходимости.Только если вы хотите использовать сторонние (пользовательские) библиотеки, вы можете установить их в своем локальном хранилище.

...