安装POM时设置本地存储库ID

Gar*_*son 11 java pom.xml maven

我需要一个本地存储库来为我的项目提供一个JAR文件,该文件不能通过Maven Central存储库获得.我mvn install:install-file …根据http://maven.apache.org/guides/mini/guide-3rd-party-jars-local.html使用-DlocalRepositoryPath来安装我的JAR ,用于指示我的Git存储库中的路径,并-DcreateChecksum用于创建校验和.

这将安装JAR,生成POM,并为所有文件生成校验和.但有趣的是,它还maven-metadata-local.xml在groupId目录中创建了一个文件.来自http://maven.apache.org/ref/3.2.5/maven-repository-metadata/我收集的local是它为本地存储库提供的ID.

但是在我的POM中(mvn install:install-file无法知道)我使用local-repo我的存储库的ID :

<repositories>
  <repository>
    <id>local-repo</id>
    <url>file:///${project.basedir}/repo</url>
  </repository>
</repositories>
Run Code Online (Sandbox Code Playgroud)

当然我可以改变我的POM来简单地<id>local</id>用来匹配生成的文件,但我不喜欢做事而不理解为什么我这样做.所以也许有人可以告诉我:

  • 我需要maven-metadata-local.xml吗?它有用吗?
  • 部件是否local需要匹配我在POM中使用的存储库ID?
  • 是否mvn install:install-file有一个参数允许我指示用于本地存储库的ID(例如,生成maven-metadata-local-repo.xml,或者我必须在之后手动重命名该文件?

Arn*_*lec 1

我需要 maven-metadata-local.xml 吗?它有目的吗?

取决于你想做什么,我建议你阅读这篇文章以了解 maven-metadata-local.xml 的作用

http://maven.apache.org/ref/3.2.5/maven-repository-metadata/

本地部分是否需要与我在 POM 中使用的存储库 ID 匹配?

不,pom 中声明的 id 只是为了在 maven 构建期间登录,这将解释 id 的用法:

https://maven.apache.org/guides/introduction/introduction-to-repositories.html

mvn install:install-file 是否有一个参数允许我指示用于本地存储库的 ID(例如生成 maven-metadata-local-repo.xml,或者之后必须手动重命名该文件?

是的,根据 maven api 指南:

https://maven.apache.org/guides/mini/guide-3rd-party-jars-local.html