如何将本地jar文件(还不是Maven存储库的一部分)直接添加到项目的库源中?
当前回答
这是较新版本的简短语法:
mvn install:install-file -Dfile=<path-to-file>
当JAR由ApacheMaven构建时,这是最常见的情况。然后它将在META-INF目录的子文件夹中包含一个pom.xml,默认情况下将读取该文件。
资料来源:http://maven.apache.org/guides/mini/guide-3rd-party-jars-local.html
其他回答
一种方法是将其上传到您自己的Maven存储库管理器(如Nexus)。无论如何,拥有一个自己的存储库管理器是很好的做法。
我最近看到的另一个好方法是在构建生命周期中包含Maven安装插件:在POM中声明将文件安装到本地存储库。这是一个有点但很小的开销,并且不涉及手动步骤。
http://maven.apache.org/plugins/maven-install-plugin/install-file-mojo.html
也许有人会感兴趣:https://github.com/Limraj/maven-artifact-generator
Console程序在本地存储库中生成maven工件,并根据jar的路径为pom.xml配置依赖项。您可以对一个文件执行此操作,但如果您有多个jar文件,则最有用。
路径jar:java-jar maven-artifact-generator-X.X.X.jar-p path_to_jars-g com.test-V 1.2.3-p jar
震击器:java-jar maven-artifact-generator-X.X.X.jar-f file_jar-g com.test-V 1.2.3-P jar
这将在本地maven存储库中生成一个工件,并在gen.log中为pom.xml生成依赖项。ArtifactId是jar文件的名称。
需要安装maven。在widnows 7和macOS X(unix/linux)上测试。
还可以看看。。。
<scope>compile</scope>
Maven依赖项。这是默认设置,但我发现在某些情况下,也会显式设置Maven的作用域,以便在本地存储库中查找本地库。
我的着色jar文件不包含使用AlirezaFattahi解决方案的第三方库。然而,我记得,我上次在同一个项目中尝试过它之后,它就开始工作了。因此,我尝试了自己的解决方案:
mkdir.m2/repositories目录下的项目路径(类似于该目录下的其他maven依赖项目录)将第三方jar文件放入其中。像maven存储库上的库一样添加依赖项。
最后,它对我有用。:)
您可以直接添加本地依赖项(如build maven项目中所述,包含专有库),如下所示:
<dependency>
<groupId>com.sample</groupId>
<artifactId>sample</artifactId>
<version>1.0</version>
<scope>system</scope>
<systemPath>${project.basedir}/src/main/resources/Name_Your_JAR.jar</systemPath>
</dependency>
使现代化
在新版本中,此功能被标记为已弃用,但仍在工作,尚未删除(您只需在maven启动期间的日志中看到警告)。maven集团对此提出了一个问题https://issues.apache.org/jira/browse/MNG-6523(您可以参与并描述此功能在某些情况下有帮助的原因)。我希望这一功能仍然存在!
若你们问我,只要这个特性没有被删除,我就用它来依赖我项目中的一个不适合存储库的jar文件。如果删除此功能,那么,这里有很多好的答案,我可以稍后选择!
推荐文章
- 如何在java中格式化持续时间?(如格式H:MM:SS)
- urlencoder .encode(字符串)已弃用,我应该使用什么代替?
- javax.transaction.Transactional vs . org.springframework.transaction.annotation.Transactional
- Java 8接口方法中不允许“同步”的原因是什么?
- 如何找到Java堆大小和内存使用(Linux)?
- 使用Enum实现单例(Java)
- RabbitMQ与通道和连接之间的关系
- buildSessionFactory()配置方法在Hibernate中已弃用?
- Spring MVC -如何获得所有的请求参数在一个地图在Spring控制器?
- 如何在Java中按两个字段排序?
- 文件之间的差异。路径中的分隔符和斜杠
- 在方法参数中使用NotNull注释
- Spring MVC中处理可选参数的@RequestParam
- 禁用maven下载进度指示
- Tomcat:如何查找正在运行的Tomcat版本?