【发布时间】:2021-09-25 06:01:47
【问题描述】:
我正在尝试在 Intellij 中创建一个运行配置,单击即可为基于 maven 的项目的开发人员执行构建过程。其中配置如下:
- 构建模块1
- 构建模块2
- 启动服务器
该过程运行良好,但是在我构建 module2 时出现了问题。 Module2 依赖于在 module1 的目标文件夹中生成的 jar 文件,并且 module2 期望将此 jar 复制到本地存储库(.m2 文件夹),但由于 pom.xml 没有将 jar 复制到 .m2 文件夹moudle1 包含跳过安装的插件,如下所示:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-install-plugin</artifactId>
<version>2.4</version>
<configuration>
<skip>true</skip>
</configuration>
</plugin>
这不会让这个 jar 被复制到 .m2 文件夹中。此配置已添加,因为服务器上存在空间限制,并且不需要在其上进行这些安装。
所以我需要做的是以某种方式将 jar 从 moudle1 的目标文件夹复制到 .m2 文件夹。 我试过了
mvn install:install-file -Dfile={path/to/my/legacy.jar} -DgroupId=mygroupid -DartifactId=legacy.jar -Dversion=1.2.3 -Dpackaging=jar
我对此的担心是我必须以静态方式提及文件和版本的路径。 是否可以从 pom.xml 文件中以某种方式访问这些属性?此外,目标文件夹仅在项目结构内,因此动态地设置项目结构的路径会很好,其余的都可以硬编码。
或者还有其他方法可以复制 jar 文件吗?
我无法修改 pom.xml,因为它是一个遗留结构,我只能通过运行配置进行任何更改。
【问题讨论】:
-
当你运行
mvn install:install-file时,你将消耗与让 maven 自己安装一样多的磁盘空间。 -
我同意,但这将在开发人员系统上进行,磁盘空间利用率还可以。
标签: maven intellij-idea run-configuration