建议在没有公共存储库的maven项目中添加JAR文件的最佳策略之一是使用静态项目内存储库。不错的博客:http://charlie.cu.cc/2012/06/how-add-external-libraries-maven/或其中一个最受欢迎的博客,因为我找到了StackOverflow帖子Can I add jars to maven 2 build classpath without installing them? 当完成解决方案的集成完全相同的步骤(我的特殊情况是添加filters-1.0.jar文件)时,是否有人有下一个问题:“缺少工件imageUtil:filters:jar:0.1:compile”或者换句话说,不过在pom.xml中设置的静态项目内存储库到底也无法识别?我错过了什么?
以下是我整合解决方案的步骤:
<repository>
<id>repo</id> <releases> <enabled>true</enabled> <checksumPolicy>ignore</checksumPolicy> </releases> <snapshots> <enabled>false</enabled> </snapshots> <url>file://${project.basedir}/repo</url>
</repository>
<dependency>
<groupId>imageUtil</groupId> <artifactId>filters</artifactId> <version>0.1</version>
</dependency>
最后一步是在下一个子文件夹结构中提及JAR的复制调步
/repo/imageUtil/filters/0.1/filters-0.1.jar
当我在项目的buildpath中检查时(我正在使用Eclipse)我还看到提到JAR正在查看我的本地存储库或 - /home/simeon/.m2/repository/imageUtil/filters/0.1(缺失)
这里的问题可能是“如何对我的maven项目说我应该在我的静态项目内存储库中搜索这个JAR”?
提前致谢, SImeon
答案 0 :(得分:2)
您的设置看起来很好。它是否永远不会占用您的项目内存储库,或者您是否意味着它第一次工作,之后它只会在/home/simeon/.m2/repository/imageUtil/filters/0.1
我尝试了类似的东西,看到了如果我给出Maven Central存储库中可用的标准库的名称,它首先查找并从那里下载。
所以我拿了一个标准库(saxon)并将其重命名为不同的东西(例如:saxonic),我知道它不会在任何外部仓库中提供,我可以看到它使用我定义的“inprojrepo”< / em>并将其安装到我自己的本地maven存储库中。
之后,它使用本地maven存储库进行下一次构建。
[INFO] ------------------------------------------------------------------------
Downloading: file://D:\mymavenproject\someproject/inprojrepo/net/sf/Saxo
nic/9.4/Saxonic-9.4.pom
Downloading: http://repo.maven.apache.org/maven2/net/sf/Saxonic/9.4/Saxonic-9.4.
pom
[WARNING] The POM for net.sf:Saxonic:jar:9.4 is missing, no dependency informati
on available
Downloading: file://D:\mymavenproject\someproject/inprojrepo/net/sf/Saxo
nic/9.4/Saxonic-9.4.jar
Downloaded: file://D:\mymavenproject\someproject/inprojrepo/net/sf/Saxon
ic/9.4/Saxonic-9.4.jar (9560 KB at 29234.1 KB/sec)
[INFO]
我的POM
<repository>
<id>inprojrepo</id>
<releases>
<enabled>true</enabled>
<checksumPolicy>ignore</checksumPolicy>
</releases>
<snapshots>
<enabled>false</enabled>
</snapshots>
<url>file://${project.basedir}/inprojrepo</url>
</repository>