通过静态项目内存储库解决方案缺少添加到maven构建类路径的jar

时间:2013-01-11 16:29:00

标签: maven maven-2 maven-3

建议在没有公共存储库的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中设置的静态项目内存储库到底也无法识别?我错过了什么?

以下是我整合解决方案的步骤:

  • 在我的maven项目的根目录中创建一个“repo”文件夹
  • 在pom.xml中我注册了静态in-repository:
  

<repository>

       <id>repo</id>
       <releases>
           <enabled>true</enabled>
           <checksumPolicy>ignore</checksumPolicy>
       </releases>
       <snapshots>
           <enabled>false</enabled>
       </snapshots>
       <url>file://${project.basedir}/repo</url>
     

</repository>

  • 再次在pom.xml中添加了提及依赖:
  

<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

1 个答案:

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