如何将本地jar文件(还不是Maven存储库的一部分)直接添加到项目的库源中?
当前回答
如果您是Spring开发人员,您会发现从Spring Boot构建中生成的JAR在另一个构建中不能作为依赖JAR工作。检查您的POM是否具有以下功能:
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
此外,如果运行mvn包,请检查是否在目标/目录中看到.jar原始文件以及.jar。如果是这样的话,您需要将.jar.original文件用于任何本地开发(将其放入lib/或其他文件中)
你当然可以解决这个问题;请参阅参考Spring插件手册的原始帖子。我认为,您需要<configuration><attach>false</attach><configuration>,然后必须进行部署,Maven应该使用.jar.original文件。我自己还没有尝试过,所以请告诉我!
其他回答
在本地存储库中,您可以通过发出以下命令来安装jar
mvn install:install-file -Dfile=<path-to-file> -DgroupId=<group-id> \
-DartifactId=<artifact-id> -Dversion=<version> -Dpackaging=<packaging>
点击这个有用的链接,从mkyoung的网站进行同样的操作。您也可以查看maven指南
请注意,使用本地回购并不一定是个好主意。如果这个项目与其他人共享,那么当它不起作用时,其他人都会遇到问题和疑问,甚至在您的源代码管理系统中也无法使用jar!
尽管共享回购是最好的解决方案,但如果由于某种原因无法做到这一点,那么嵌入jar比本地回购要好。仅限本地的回购内容可能会导致很多问题,特别是随着时间的推移。
在maven项目的根目录创建一个新文件夹,比如本地maven repo。
只需在pom.xml的<project>中添加一个本地repo:
<repositories>
<repository>
<id>local-maven-repo</id>
<url>file:///${project.basedir}/local-maven-repo</url>
</repository>
</repositories>
然后,对于要安装的每个外部jar,转到项目的根目录并执行:
mvn deploy:deploy-file -DgroupId=[GROUP] -DartifactId=[ARTIFACT] -Dversion=[VERS] -Durl=file:./local-maven-repo/ -DrepositoryId=local-maven-repo -DupdateReleaseInfo=true -Dfile=[FILE_PATH]
依赖关系的重要部分是:${pom.basedir}(而不仅仅是${basedir})
<dependency>
<groupId>org.example</groupId>
<artifactId>example</artifactId>
<version>1.0</version>
<scope>system</scope>
<systemPath>${pom.basedir}/src/lib/example.jar</systemPath>
</dependency>
<dependency>
<groupId>group id name</groupId>
<artifactId>artifact name</artifactId>
<version>version number</version>
<scope>system</scope>
<systemPath>jar location</systemPath>
</dependency>
推荐文章
- 在流中使用Java 8 foreach循环移动到下一项
- 访问限制:'Application'类型不是API(必需库rt.jar的限制)
- 用Java计算两个日期之间的天数
- 如何配置slf4j-simple
- 在Jar文件中运行类
- 带参数的可运行?
- 我如何得到一个字符串的前n个字符而不检查大小或出界?
- 我可以在Java中设置enum起始值吗?
- Java中的回调函数
- c#和Java中的泛型有什么不同?和模板在c++ ?
- 在Java中,流相对于循环的优势是什么?
- Jersey在未找到InjectionManagerFactory时停止工作
- 在Java流是peek真的只是调试?
- Recyclerview不调用onCreateViewHolder
- 将JSON字符串转换为HashMap