【发布时间】:2021-11-19 10:59:58
【问题描述】:
所以之前我试图找到一种方法,通过运行配置支持将项目中内置的 jar 文件安装到 .m2 文件夹中。 Link 供参考。 那时我主要关心的是不要在命令中保留任何硬编码值并从 pom.xml 文件中选择大多数数据。这成功实现了,但现在我有另一个问题。
在项目中,我有 2 个模块 module1 和 module2。 构建module1时,它会生成2个文件war文件,因为它是一个基于Web的应用程序,第二个是jar文件,用于满足其他模块的依赖关系。 jar文件是使用
生成的<attachClasses>true</attachClasses>
在 module1 的 pom.xml 中的 maven-war-plugin 中设置的属性。 因此,如果 module1 工件 id 设置为 module1-corp,则如果使用 maven-install-plugin 安装 jar,则 jar 文件将命名为 module1-corp-classes.jar。但由于项目的遗留结构,无法使用 maven-install-plugin,我必须通过 Intellij 运行配置使用 maven 命令行来安装此文件。 所以我使用的命令是
mvn install:install-file -Dfile=${project.build.directory}/${project.build.finalName}.jar -DgroupId=${project.groupId} -DartifactId=${project.artifactId} -Dversion=${project.version} -Dpackaging=jar
这完美地安装了 jar 文件,只是它没有在 jar 文件的末尾附加 classes 部分。所以我的 jar 文件现在安装为 module1-corp.jar 而不是 module1-corp-classes.jar 不能与依赖它的模块一起工作。
我怀疑这是由于在 module2 中访问 module1 依赖项的方式如下:
<dependency>
<groupId>module1.groupid</groupId>
<artifactId>module1.artifactId</artifactId>
<version>${module1.version}</version>
**<classifier>classes</classifier>**
</dependency>
此代码在 module2 pom.xml 中。我相信分类器部分是导致问题的原因,但我无法更改它,因为它是一个遗留项目。
所以最后我只有两个选择
- 通过 maven 命令行安装时重命名 jar
- 可以通过 Intellij 运行配置重命名 jar 的其他方式。
我尝试使用以下标志
mvn install:install-file -Djar.finalName=jarname
但这似乎没有按预期工作。
【问题讨论】:
标签: maven intellij-idea jar run-configuration