我不想将几个JAR文件安装到Maven存储库中(本地和远程都包括)。具体来说,我有几个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文件安装到Maven存储库中(本地和远程都包括)。具体来说,我有几个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的本地仓库
注意:我使用Eclipse,因此一些说明是特定于Eclipse的。 大多数都可以很容易地普遍适用。
该jar由Maven在另一个项目中创建,具有以下特征...
<groupId>com.foo</groupId>
<artifactId>test</artifactId>
<version>0.1.1</version>
<packaging>jar</packaging>
定义本地存储库
<repositories>
<repository>
<id>data-local</id>
<name>data</name>
<url>file://${project.basedir}/repo</url>
</repository>
</repositories>
添加本地jar的依赖项。根据我们上面的示例,这将是...
<dependency>
<groupId>com.foo</groupId>
<artifactId>test</artifactId>
<version>0.1.1</version>
</dependency>
pom
格式的,所以无法导入。将它改为 jar
格式,并运行 mvn clean install -U
命令后,就可以将其作为 Maven 的 <dependency>
添加到项目中了。 - prayagupa你考虑过将这两个JAR文件添加为 system
依赖项 吗?例如:
<project>
...
<dependencies>
<dependency>
<groupId>sun.jdk</groupId>
<artifactId>tools</artifactId>
<version>1.5.0</version>
<scope>system</scope>
<systemPath>${java.home}/../lib/tools.jar</systemPath>
</dependency>
</dependencies>
...
</project>
需要注意的是,这并不被推荐使用,并且应该非常谨慎地使用,如果有必要的话。
过去,我通过在项目本身中创建“本地”仓库目录树,并声明一个相对于项目路径的本地仓库,来实现这一点。
但那是一种hack。 (可能并不那么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
-DpomFile=<path-to-pom>
指向该文件。然后,groupId
、artifactId
、version
和packaging
参数将从pom文件中获取。请参阅https://maven.apache.org/guides/mini/guide-3rd-party-jars-remote.html。 - snark