抑制本地仓库中的maven依赖版本后缀

Suppress maven dependency version suffix in local repository

我有一个使用 SAP Crystal 报告的 Spring 启动项目。 CR 未在 Maven Central 中发布。我将所有 CR jar 文件导入到我的 Maven 本地存储库中。在我的项目中,jar 将版本附加到 jar 文件名。对于一个 jar 文件,这会导致运行时错误。我怎么能让那个 jar 没有附加的 Maven 版本?

如果您使用 Maven 从源代码构建,那么您可以覆盖此项目的 POM 中的工件最终名称

 <finalName>myJar</finalName>

如果您 运行 手动安装 mvn,那么您可以控制存储到 Maven 存储库中的内容

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

这是我的解决方法。

问题 Jar 从未被我的项目代码直接引用,它是 Crystal Reports java 运行时的运行时库。我不需要它在构建时的类路径中,只需要在 maven 构建的部署文件中。

我的 Spring 引导项目部署为 WAR 文件,因此我需要构建我的 Eclipse Maven 项目,以便将 Jar 作为纯 Web 应用程序资源放置在 WEB-INF/lib 中.我没有将 jar 指定为 maven 依赖项。

这是一个 hack,因为 jar 文件是一个依赖项,应该在 pom.xml 中指定为 maven 项目依赖项。

这解决了我眼前的问题。 我责怪 SAP 没有考虑 Maven 作为他们的 Crystal 报告 Java 运行时。