繁体   English   中英

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

[英]Suppress maven dependency version suffix in local repository

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

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

 <finalName>myJar</finalName>

如果您手动运行 mvn install,那么您可以控制存储到 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 Boot 项目部署为 WAR 文件,因此我需要构建我的 Eclipse Maven 项目,以便将 Jar 作为普通 Web 应用程序资源放置在 WEB-INF/lib 中。 我没有将 jar 指定为 maven 依赖项。

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

这解决了我眼前的问题。 我责怪 SAP 没有将 Maven 用于他们的 Crystal Reports Java 运行时。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM