我有一个具有以下布局的项目:
我的目标是让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
答案 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而不是一个他们在每个项目等等。)。