【发布时间】:2010-03-02 15:40:31
【问题描述】:
我正在使用 mvn install:install 命令将我们的内部文件安装到 Maven 存储库。以这种方式安装的所有 Jars 都会自动添加版本名称作为后缀。由于我们有许多带有 Jars 名称的批处理脚本,这对我们来说非常不方便。如何关闭自动重命名?
【问题讨论】:
标签: maven-2
我正在使用 mvn install:install 命令将我们的内部文件安装到 Maven 存储库。以这种方式安装的所有 Jars 都会自动添加版本名称作为后缀。由于我们有许多带有 Jars 名称的批处理脚本,这对我们来说非常不方便。如何关闭自动重命名?
【问题讨论】:
标签: maven-2
你不能。 Maven 中的依赖解析有效,因为 Maven 有约定,工件的命名就是其中之一。所以你不能关闭 maven install 工件的方式(而且你实际上不想这样做)。
处理脚本 (bat/sh) 的常用方法是将它们放在源代码树中(例如,在 src/main/bin 中)并使用 assembly plugin 创建项目的分发版。在构建程序集时,您可以重命名工件、filter 分发文件等。这将是执行此类操作的正确位置。
【讨论】:
很想删除版本号,但我建议尽可能保留它。
也许您可以使用Maven's resource filtering 功能来管理您的批处理脚本,而不是删除版本号? Maven 可以通过将 bat 脚本中的 ${project.version} 等占位符替换为 pom.xml 中的当前版本号来管理您的批处理脚本。这样,您可以确保批处理脚本正在运行正确(预期)版本的代码。
您可能会强制 maven 部署一个没有版本的 jar,但如果您这样做,您将失去最初让 Maven 管理您的构建的一些主要好处,imo。例如,就在昨天,我被要求维护一个不受 maven 管理的 java 项目,其中包含 lib 目录中的一堆非版本化 jar 文件。没有办法知道这些罐子是从哪里来的。
前面可能有点让人头疼,但如果你使用的是 maven,你不妨跳入 100%(再次,根据我的经验)。
【讨论】: