首页 > 解决方案 > 有没有办法从本地 jar 在 pom 文件中创建 maven 依赖项

问题描述

有一个 java 项目有太多的 jar 文件,并且很难管理所有这些文件。我知道有一种方法可以将此项目转换为 maven 项目,但我不想手动将项目中每个 jar 的依赖项添加到 pom 文件中。

有没有办法使用本地 jar 文件创建 pom 文件,这样 pom 将包含每个 jar 的依赖标记。

编辑:我想澄清一下,我不想将罐子从本地存储库添加到本地存储库。本地存储库方法对我不起作用,因为该项目将由跨不同系统的多个用户使用。

我想为我已经拥有的 jar 文件创建常规的 pom 依赖项以及 groupId、artifactId 和版本,以便在将项目转换为 Maven 项目时可以将其复制粘贴到 pom 文件中。由于我的项目中有大量 JAR,因此我必须手动完成所有操作。

@Milen Dyankov 提供的解决方案对我有用。我能够从大多数 JAR 文件中获得我需要的信息。

标签: javamavenjarpom.xml

解决方案


您可以手动将 JAR 安装到本地 Maven 存储库中

第一种方式

按照这里的步骤

mvn install:install-file -Dfile=<path-to-file>

在这里您可以在命令行中添加这些信息

mvn install:install-file -Dfile=<path-to-file> -DgroupId=<group-id> -DartifactId=<artifact-id> -Dversion=<version>

<path-to-file>提到要安装的 JAR 路径

<group-id>提到要安装的 JAR 的组 id

<artifact-id>提到要安装的 JAR 的工件 ID

<version>提到的 JAR 版本

第二种方式

您可以创建不同的本地 Maven 存储库

按照步骤

我们可以认为新的本地 Maven 存储库被命名maven-repository并且位于${basedir}(包含 pom.xml 的目录)。

在新的本地 maven 存储库中部署本地 JAR,如下所示

mvn deploy:deploy-file -Dfile=<path-to-file> -DgroupId=<group-id> -DartifactId=<artifact-id> -Dversion=<version> -Dpackaging=jar -Durl=file:./maven-repository/ -DrepositoryId=maven-repository -DupdateReleaseInfo=true

您可以看到哪个 mavendeploy:deploy-file将工件安装在远程存储库中,但在这里存储库位于本地计算机中

安装 JAR 后,您需要在 pom.xml 文件中添加存储库

<repositories>
    <repository>
        <id>maven-repository</id>
        <url>file:///${project.basedir}/maven-repository</url>
    </repository>
</repositories>

推荐阅读