maven本地安装jar包install-file,解决没有pom的问题

背景:

公司因为权限问题,没有所有的代码,内部maven还在搭建,所以需要拿到同事的jar包,本地install:

复制代码
mvn install:install-file -DgroupId=com..framework -DartifactId=cloud-api -Dversion=1.0.0-SNAPSHOT -Dpackaging=jar  -Dfile=C:\develop\workspace\20Src\common\lib\common\api-1.0.0-SNAPSHOT.jar

执行后,工程中可以调用到这个jar包的class,但是这个jar包的传递依赖却没有,导致编译的时候报错。

预期的情况,jar包应该包含依赖传递:

不正常情况:

查看了下C:\Users\用户\.m2\repository下生成文件,发现生成的pom(cloud-api-1.0.0-SNAPSHOT.pom)长这样:

复制代码
<?xml version="1.0" encoding="UTF-8"?>
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.framework</groupId>
  <artifactId>cloud-api</artifactId>
  <version>1.0.0-SNAPSHOT</version>
  <description>POM was created from install:install-file</description>
</project>

说明没有成功。

通过查找,找到这篇文章将 JAR 安装到存储库时,Maven 不读取 POM | 那些遇到过的问题

发现需要指定pom:

复制代码
mvn org.apache.maven.plugins:maven-install-plugin:2.5.2:install-file  -Dfile=C:\common\cloud-core-1.0.0-SNAPSHOT.jar

执行后pom文件依然没有变化,

根据文章内容,说明2.5.2应该是有bug。

最终找到这篇文章:https://maven.apache.org/plugins/maven-install-plugin/examples/custom-pom-installation.html

改成:

复制代码
mvn org.apache.maven.plugins:maven-install-plugin:3.1.1:install-file  -Dfile=C:\common\cloud-core-1.0.0-SNAPSHOT.jar

这里说明是如果有自定义的pom,可以通过-DpomFile=指定。

如果没有,会自动使用jar包内的pom

相关推荐
假女吖☌39 分钟前
Maven 处理依赖冲突
java·python·maven
Arenaschi3 小时前
运用fmpeg写一个背英文单词的demo带翻译
java·笔记·tcp/ip·其他·eclipse·maven
forestsea17 小时前
Maven 动态版本与SNAPSHOT机制详解
java·maven
程序员buddha19 小时前
用Maven定位和解决依赖冲突
java·maven
努力的搬砖人.20 小时前
maven如何搭建自己的私服(LINUX版)?
java·linux·maven
龙俊亨1 天前
maven坐标导入jar包时剔除不需要的内容
java·maven·jar
冠位巴萨辛山の翁1 天前
Maven
java·maven
努力的搬砖人.1 天前
maven如何搭建自己的私服(windows版)?
java·windows·maven
默心2 天前
jenkins配置多nexus仓库多maven版本
servlet·jenkins·maven
木泽锐2 天前
idea里maven自定义的setting.xml文件不生效问题
java·maven·intellij-idea