我一直在为我的Spring MVC项目需要的所有jar文件执行此操作:
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
目录?
这里的最佳做法是什么?
答案 0 :(得分:10)
我一直在使用命令行做同样的事情,但是在我的POM中配置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>
效率低,因为文件反复安装,但它比手工制作文件要烦人得多。无论如何,我认为你应该试一试。
答案 1 :(得分:3)
所有依赖项都应驻留在本地存储库下。根据Maven约定/最佳实践,您不应该在项目中保留jar文件。
将您的项目转换为基于完全战争的Maven项目。这会将所有依赖项(jar文件)放在webapp的WEB-INF/lib
目录下。因此,您不必担心长路径。
答案 2 :(得分:0)
您只需要在pom.xml文件中添加依赖项,无需手动安装它们。 Maven将下载库并在需要时将其放入本地存储库。只有当您想使用第三方(自定义)库时,才可以将其安装在本地存储库中。