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

相关推荐
清木青青3 小时前
maven中的scope理解,你学会了吗?
maven
苦学编程的谢8 小时前
Maven
java·maven·intellij-idea
考虑考虑8 小时前
Maven 依赖范围(Scope)
java·后端·maven
程序员张318 小时前
Maven编译和打包插件
java·spring boot·maven
代码的余温1 天前
5种高效解决Maven依赖冲突的方法
java·maven
paishishaba1 天前
Maven
java·maven
代码的余温2 天前
Maven引入第三方JAR包实战指南
java·maven·jar
Wyc724092 天前
Maven
java·数据库·maven
逆风局?2 天前
Maven高级——分模块设计与开发
java·maven
周某某~2 天前
maven详解
java·maven