如何将本地jar文件(还不是Maven存储库的一部分)直接添加到项目的库源中?
当前回答
首选方法是创建自己的远程存储库。
有关如何执行此操作的详细信息,请参阅此处。查看“上载到远程存储库”部分。
其他回答
在本地存储库中,您可以通过发出以下命令来安装jar
mvn install:install-file -Dfile=<path-to-file> -DgroupId=<group-id> \
-DartifactId=<artifact-id> -Dversion=<version> -Dpackaging=<packaging>
点击这个有用的链接,从mkyoung的网站进行同样的操作。您也可以查看maven指南
不是最初问题的答案,但它可能对某人有用
没有正确的方法可以使用Maven从文件夹中添加多个jar库。如果只有几个依赖项,那么配置maven安装插件可能更容易,如上面的答案所述。
然而,对于我的特殊情况,我有一个lib文件夹,其中包含100多个专有jar文件,我必须以某种方式添加这些文件。对我来说,将Maven项目转换为Gradle要容易得多。
plugins {
id 'org.springframework.boot' version '2.2.2.RELEASE'
id 'io.spring.dependency-management' version '1.0.8.RELEASE'
id 'java'
}
group = 'com.example'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '1.8'
repositories {
mavenCentral()
flatDir {
dirs 'libs' // local libs folder
}
}
dependencies {
implementation 'org.springframework.boot:spring-boot-starter-web'
testImplementation('org.springframework.boot:spring-boot-starter-test') {
exclude group: 'org.junit.vintage', module: 'junit-vintage-engine'
}
implementation 'io.grpc:grpc-netty-shaded:1.29.0'
implementation 'io.grpc:grpc-protobuf:1.29.0'
implementation 'io.grpc:grpc-stub:1.29.0' // dependecies from maven central
implementation name: 'akka-actor_2.12-2.6.1' // dependecies from lib folder
implementation name: 'akka-protobuf-v3_2.12-2.6.1'
implementation name: 'akka-stream_2.12-2.6.1'
}
依赖关系的重要部分是:${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>
将JAR安装到本地Maven存储库中(通常位于主文件夹中的.m2),如下所示:
mvn install:install-file \
-Dfile=<path-to-file> \
-DgroupId=<group-id> \
-DartifactId=<artifact-id> \
-Dversion=<version> \
-Dpackaging=<packaging> \
-DgeneratePom=true
其中每一个都指:
<path to file>:要加载的文件的路径,例如→ c: \patcha-2.3.jar
<group id>:文件应在其下注册的组,例如→ com.google代码
<artifact-id>:文件的工件名称,例如→ 卡普查
<version>:文件的版本,例如→ 2.3
<package>:文件的打包,例如。→ 罐子
参考
Maven常见问题解答:我有一个jar,我想把它放到我的本地存储库中。我如何复制它?Maven安装插件用法:Install:Install文件目标
我的着色jar文件不包含使用AlirezaFattahi解决方案的第三方库。然而,我记得,我上次在同一个项目中尝试过它之后,它就开始工作了。因此,我尝试了自己的解决方案:
mkdir.m2/repositories目录下的项目路径(类似于该目录下的其他maven依赖项目录)将第三方jar文件放入其中。像maven存储库上的库一样添加依赖项。
最后,它对我有用。:)
推荐文章
- 在流中使用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