如何在Maven项目中包含本地jar文件

我不想在Maven存储库(本地/远程)中安装几个jar。 特别是我有几个jar文件

c:\work\projects\myapp\src\main\webapp\WEB-INF\lib\test.jar c:\work\projects\myapp\src\main\webapp\WEB-INF\lib\test2.jar 

使用NetBeans打开/编辑时如何将它们包含到我的项目中?

您是否考虑将这两个JAR添加为system依赖项 ? 例如,

  ...   sun.jdk tools 1.5.0 system ${java.home}/../lib/tools.jar   ...  

请注意,这是不推荐的,如果有的话,应该非常谨慎地使用。

虽然它可以使用systemPath引用,但最好创建一个本地存储库。 幸运的是,这很容易做到。

创建一个本地存储库,其中包含公共存储库中不可用的jar文件

注意:我使用Eclipse,因此一些指令特定于Eclipse。 大多数都很容易推广。


假设

  • 这个jar子是由Maven在另一个项目中创建的,具有以下内容……

     com.foo test 0.1.1 jar 

在项目中(想要访问jar子)

  • 在项目基目录下创建repo目录
  • 对于每个本地访问的jar …
    • 为groupID的每个级别添加目录(例如/ repo / com / foo
    • 添加jar名称(aka artifactId)没有版本(例如/ repo / com / foo / test
    • 添加jar版本的目录(例如/ repo / com / foo / test /0.1.1
    • 将jar放在该目录中(例如/repo/com/foo/test/0.1.1 /test-0.1.1.jar

在pom.xml中(对于想要访问jar的项目)

  • 定义本地存储库

       data-local data file://${project.basedir}/repo   
  • 添加对本地jar的依赖。 从上面的例子来看,这将是……

      com.foo test 0.1.1  

重建

  • Rt单击pom.xml – >运行为 – > Maven构建

在过去,我通过在项目本身中创建“本地”存储库目录树来完成此操作,并通过声明具有项目相对路径的本地存储库在POM中引用它。

但这是一个黑客。 (也许不是那么hacky – 根据@Pascal的评论。尽管使用了一年左右,我仍然是一个Maven新手。)

没有其他答案对我有用。 我不得不运行一个稍微不同的命令……

 mvn deploy:deploy-file -Durl=file:///path/to/yourproject/repo/ -Dfile=mylib-1.0.jar -DgroupId=com.example -DartifactId=mylib -Dpackaging=jar -Dversion=1.0 

请参阅本文中的完整步骤: https : //devcenter.heroku.com/articles/local-maven-dependencies