Maven:使用项目文件夹作为lib的存储库

时间:2014-02-18 14:11:45

标签: java maven

我有一个具有以下布局的项目:

enter image description here

我的目标是让mvn在项目lib目录中查找潜在库的附加位置,这些库在maven存储库中找不到,例如j-text-utils.jar。所以我在pom.xml中添加了这个

 <repositories>
     <repository>
        <id>lib</id>
        <url>file://${project.basedir}/lib</url>
     </repository>
 </repositories>

我从这里接受了这个想法:http://randomizedsort.blogspot.co.il/2011/10/configuring-maven-to-use-local-library.html

运行mvn compile时,无法在项目文件夹中找到相关的库。

以上是否有任何问题?

THX

2 个答案:

答案 0 :(得分:1)

设置基于文件的存储库没有任何问题。但首先,您的目录结构需要符合groupid / artifactid。你应该使用

set localrepopath=C:\path_to_repo_rootdir
call mvn install:install-file -Dfile=xyz-1.2.jar -DgroupId=com.foo -DartifactId=xyz -Dversion=1.2 -Dpackaging=jar -DlocalRepositoryPath=%localrepopath% -DcreateChecksum=true

它将创建目录com \ foo \ 1.2,其中包含所有pom.xml,jar文件和校验和文件。

然后,您需要在自己的项目pom.xml中为这些新安装的工件定义依赖项。

如果您不想设置本地存储库并且只想将它们添加到编译类路径中,您可以考虑使用“系统”范围依赖项,但它会使您的构建不可移植,并且通常不鼓励。

答案 1 :(得分:0)

你可以这样做(只是configure the maven-dependency-plugin正确),但我不建议这样做。

这个方向可能存在一些缺点(例如,让Jars可以进入您正在使用的存储库,对于许多项目来说,最好只在硬盘的专用位置安装一个Jar而不是一个他们在每个项目等等。)。