mvn install:install-file将本地jar安装到maven本地仓库

    有一些三方jar包是远程仓库中没有的,我们在maven项目中,可以通过指定本地jar的方式使用它。

<dependency>
      <groupId>org</groupId>
      <artifactId>opencv</artifactId>
      <version>453</version>
      <scope>system</scope>
      <systemPath>${project.basedir}\src\main\resources\opencvlib\opencv-453.jar</systemPath>
</dependency>

    我们如果想像其他依赖一样使用这个jar,可以考虑使用mvn mvn-install命令将这个jar包安装到本地仓库,然后就可以去掉scope与systemPath属性了。

    安装到本地仓库的几个参数,-DgroupId,-DartifactId ,-Dversion,-Dpackaging,-Dfile。从名字上就很容易知道他们的含义,只有-Dpackaging这里需要指定jar。-Dfile就是我们要加入本地仓库的jar文件。

如下是一个安装截图:

    完整的安装命令:

mvn install:install-file -DgroupId=com.aspose \
                         -DartifactId=aspose-ocr \
                         -Dversion=17.2 \
                         -Dpackaging=jar \
                         -Dfile=aspose-ocr-17.2.jar

    最后的-Dfile需要指定jar的路径,这里直接在jar所在目录命令行下执行,所以可以不用指定绝对路径。 

    如果你知道maven本地仓库结构,可能会想着手动把这个jar包按照一定的规则放到repository目录下的相关文件夹中,最后在pom.xml中使用这个依赖的时候,发现报错,其实就是缺少了一些pom,repositories等文件的原因,所以还是老老实实通过maven命令来加入仓库。

### Maven 本地仓库中 `mvn install:install-file` 的存储路径 Maven 使用本地仓库作为依赖管理的核心部分之一。当通过 `mvn install:install-file` 命令将文件安装本地仓库时,该文件会被放置在一个特定的目录结构下[^1]。 #### 默认存储位置 默认情况下,Maven本地仓库位于用户的主目录下的 `.m2/repository` 文件夹中。具体路径如下: - **Windows**: `%USERPROFILE%\.m2\repository` - **Linux/MacOS**: `~/.m2/repository` 此路径可以通过设置环境变量 `M2_HOME` 或配置 `settings.xml` 中的 `<localRepository>` 节点来更改[^2]。 #### 存储结构 一旦文件成功安装,其存储路径会遵循以下模式: ``` <local-repository>/<groupId>/<artifactId>/<version>/ ``` 其中: - `<local-repository>` 是本地仓库的位置,默认为上述提到的路径。 - `<groupId>` 替换为实际的 groupId,并用斜杠分隔每个点号(`.`)。例如,`com.aspose` 将变为 `com/aspose`。 - `<artifactId>` 和 `<version>` 则分别对应命令中的 `-DartifactId` 和 `-Dversion` 参数。 以引用中的例子为例[^3]: ```bash mvn install:install-file \ -Dfile=pop-sdk-x.xx.xx.jar \ -DgroupId=com.pop.sdk \ -DartifactId=pop-sdk \ -Dversion=x.xx.xx \ -Dpackaging=jar ``` 对应的存储路径将是: ``` <local-repository>/com/pop/sdk/pop-sdk/x.xx.xx/pop-sdk-x.xx.xx.jar ``` #### 验证存储路径 可以运行以下命令验证当前使用的本地仓库路径: ```bash mvn help:effective-settings ``` 这将在输出中显示 `<localRepository>` 的确切位置。 --- ### 示例代码:获取并打印本地仓库路径 以下是用于动态检测 Maven 本地仓库路径的一个简单 Java 实现: ```java import org.apache.maven.settings.Settings; import org.apache.maven.settings.building.DefaultSettingsBuilderFactory; import org.apache.maven.settings.building.DefaultSettingsBuildingRequest; import org.apache.maven.settings.building.SettingsBuilder; import org.apache.maven.settings.building.SettingsBuildingException; public class MavenLocalRepoPath { public static void main(String[] args) throws SettingsBuildingException { SettingsBuilder settingsBuilder = new DefaultSettingsBuilderFactory().newInstance(); DefaultSettingsBuildingRequest request = new DefaultSettingsBuildingRequest(); Settings settings = settingsBuilder.build(request).getEffectiveSettings(); String localRepoPath = settings.getLocalRepository(); System.out.println("Maven Local Repository Path: " + localRepoPath); } } ``` ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

luffy5459

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值