java - 有没有办法从本地 jar 在 pom 文件中创建 maven 依赖项
问题描述
有一个 java 项目有太多的 jar 文件,并且很难管理所有这些文件。我知道有一种方法可以将此项目转换为 maven 项目,但我不想手动将项目中每个 jar 的依赖项添加到 pom 文件中。
有没有办法使用本地 jar 文件创建 pom 文件,这样 pom 将包含每个 jar 的依赖标记。
编辑:我想澄清一下,我不想将罐子从本地存储库添加到本地存储库。本地存储库方法对我不起作用,因为该项目将由跨不同系统的多个用户使用。
我想为我已经拥有的 jar 文件创建常规的 pom 依赖项以及 groupId、artifactId 和版本,以便在将项目转换为 Maven 项目时可以将其复制粘贴到 pom 文件中。由于我的项目中有大量 JAR,因此我必须手动完成所有操作。
@Milen Dyankov 提供的解决方案对我有用。我能够从大多数 JAR 文件中获得我需要的信息。
解决方案
您可以手动将 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>
推荐阅读
- apostrophe-cms - 在撇号页面中显示撇号小部件
- azure-cosmosdb - 使用 microsoft azure documentdb api 连接到 cosmos db 导致错误请求错误
- docker - Docker“无效的引用格式:存储库名称必须小写”
- angular - 如何在 Angular 中创建表并搜索该表?
- python - 有什么方法可以在python中将路径附加到环境变量'PATH'
- swift - 如何从 NSDocument 的 read 方法中获取数据
- javascript - 如何从 javacsript 中的现有 JSON 对象中获取特定的键值?
- jvm - 无法从堆分配内存
- bash - 终端打开时出错:-bash: /nvm.sh: No such file or directory
- deployment - 在谷歌云的部署管理器中使用 gcp-types/servicenetworking.googleapis.com:services.connections