具有属性的 Maven 版本

2023-12-31

我有大约 400 个插件的大型 Maven (Tycho) 项目。

我们在每个 POM 文件中指定了应用程序的版本。

有没有一种方法可以仅在一个地方指定所有 POM:s 的版本?

我希望有些人会这样想:

<properties>
<buildVersion>1.1.2-SNAPSHOT</buildVersion>
</properties>

....

<version>${buildVersion}</version>

我们有父母pom.xml:

<modelVersion>4.0.0</modelVersion>
<groupId>company</groupId>
<artifactId>build.parent</artifactId>
<version>1.1.2-SNAPSHOT</version>
<packaging>pom</packaging>

然后在每个 POM 中引用父 POM:

<parent>
  <artifactId>build.parent</artifactId>
  <groupId>company</groupId>
  <relativePath>../build.parent/pom.xml</relativePath>
  <version>1.1.2-SNAPSHOT</version>
</parent>

<modelVersion>4.0.0</modelVersion>
<groupId>company</groupId>
<artifactId>artifact</artifactId>
<version>1.1.2-SNAPSHOT</version>
<packaging>eclipse-plugin</packaging>

如果你有一个父项目,你可以在父 pom 中设置版本,在子项目中你可以使用以下命令引用同级库:${项目.版本} or ${版本}特性。

如果您想避免在每个子项中重复父项的版本:您可以这样做:

<modelVersion>4.0.0</modelVersion>
<groupId>company</groupId>
<artifactId>build.parent</artifactId>
<version>${my.version}</version>
<packaging>pom</packaging>

<properties>
<my.version>1.1.2-SNAPSHOT</my.version>
</properties>

然后在你的孩子 pom 中你必须这样做:

    <parent>
      <artifactId>build.parent</artifactId>
      <groupId>company</groupId>
      <relativePath>../build.parent/pom.xml</relativePath>
      <version>${my.version}</version>
    </parent>

    <modelVersion>4.0.0</modelVersion>
    <groupId>company</groupId>
    <artifactId>artifact</artifactId>
    <packaging>eclipse-plugin</packaging>

    <dependencies>
        <dependency> 
           <groupId>company</groupId>
           <artifactId>otherartifact</artifactId>   
           <version>${my.version}</version>
or
           <version>${project.version}</version>
        </dependency>
    </dependencies>

hth

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

具有属性的 Maven 版本 的相关文章

随机推荐

  • 使用 Mocha 和 Istanbul 时从覆盖范围中排除文件

    使用 mocha 和 instanbul 时 如何从覆盖率报告中排除文件夹和文件 按路径 我想通过配置排除而不是 istanbul ignore next 在每个文件中 Jenkins使用生成的报告 Thanks 您可以使用以下命令忽略与特
  • 异步显示对话框

    我正在使用 async await 从数据库异步加载数据 在加载过程中 我想弹出一个加载表单 它只是一个简单的表单 带有运行进度条以指示有一个正在运行的进程 加载数据后 该对话框将自动关闭 我怎样才能做到这一点 下面是我当前的代码 prot
  • 如何在 Lumen 中使用身份验证进行用户登录?为什么我在启动时看到“未经授权”?

    我有一个无法加载 显示的登录页面 用户名 密码输入 相反 启动应用程序时 显示的只是 未经授权 这是来自命令Authenticate php我已将其进一步包含在下面 My routes php app gt get PageControll
  • 获取前台应用程序图标转换为base64

    我正在尝试获取前台应用程序图标并将其转换为 base64 我可以获取前台应用程序的名称 但无法获取图标 当我对其进行编码时 我得到一个字符串 但它不是图标 我不确定我的错误在哪里 这是我的代码 public class RunningSer
  • 在 WCF REST 序列化之前将 System.IO.Stream 转换为数据传输对象?

    这个问题建立在之前的问题的基础上 尽管偏离主题 我昨天问过 https stackoverflow com questions 4889439 getting a type specific response from a wcf rest
  • postgresql中的round函数究竟是如何工作的?

    postgresql中的round函数实际上是如何工作的 下面的查询展示了奇怪的行为 SQL DEMO http rextester com IHQ94614 select val Round x val NUMERIC as NUMERI
  • 带有文件 I/O 和数组列表的 JTable

    在我的程序中 用户输入单词及其相应的定义 该用户定义对象的一个 示例是 面容 人脸 用户的单词存储在一个与文件 I O 一起使用的数组列表中 但是 每次我调用 prepareTable 方法时 程序 将文本文件中找到的单词的重复项添加到数组
  • URL 的正则表达式

    下面发布的正则表达式用于获取 URL 包括以下格式的 URL example com 但是 我希望它只获取具有www or http https等在前面 换句话说 它应该拾起www example com 它不应该拾取example com
  • TreeMap 中的键返回 null

    所以我有一个非常奇怪的错误 当我最初使用 keySet 迭代大型 TreeMap 的前 10 个键时 我偶然发现了它 其中一个键返回 null 据我的理解 这应该是不可能的 所以我写了下面的测试代码 int i 0 for Map Entr
  • 如何将双引号字符串与转义双引号字符匹配?

    我需要一个 Perl 正则表达式来匹配字符串 我假设只有双引号字符串 是文字引号字符 而不是字符串的结尾 而 是文字反斜杠字符 不应转义引号字符 如果不清楚 有些例子 string is 1 character long contains
  • Datastax cassandra 存在性能问题

    我已经在两台独立的机器上安装了 datastax Cassandra 一台具有 16GB RAM 另一台具有 32GB RAM 并采用大部分默认配置 我创建了一个包含大约 700 列的表 当我尝试使用 java 插入记录时 它每 30 秒能
  • ASP.Net MVC 操作结果是什么?

    是否有所有 ASP Net MVC 操作结果及其用途的列表 我一直忙于使用 ActionResult 来处理几乎所有事情 但我知道这是不正确的 我应该使用更具体的操作结果 我用谷歌搜索过这个但找不到列表 我们刚刚购买了 Wrox 的书 但距
  • 在 XAML 中访问 c​​ontroltemplate 中元素的属性

    我想使用由图像和标签组成的模板化 ComboBoxItems 如果我将模板分配给 ComboBoxItem 我可以以某种方式设置图像的源属性吗 目标是对不同的 ComboBoxItems 使用相同的模板 但每个 Item 中使用不同的图片
  • 使用 Google Drive Api v2 选择特定字段

    我有一个错误 Google Apis Requests RequestErrorInvalid field selection filesize 400 Errors Message Invalid field selection file
  • 如何检测变量值何时发生变化

    如何轻松检测变量值何时发生变化 我希望每当指定的变量更改值时 程序的执行就会在调试器上中断 现在我正在使用 Eclipse 的调试器 对于类或实例变量 右键单击大纲视图中的变量 选择 切换观察点 然后 在断点视图中 您可以右键单击生成的结果
  • G++ 为未使用的模板特化生成代码?

    在我正在处理的项目的一些序列化代码中 我有一个类型 其大小取决于编译器 为了解决这个问题 我决定使用模板专业化 效果很好 一切都在编译时解决 代码看起来有点像这样 不是真正的代码 只是一个例子 template
  • 角度种子 web-script.js 和 cors

    我已经第二天了 我试图从外部域获取一些 json 但我打破了 CORS 我几乎确定如何在 AngularJS 资源中使用 JSONP https stackoverflow com questions 20025711 how to use
  • 适用于 UWP 的 Google API 与自定义重定向方案配合不佳

    我正在编写一个可与 Google Drive API 配合使用的 UWP 应用程序 我的问题似乎出在 Google 针对 UWP 应用程序的糟糕文档 在文档中它指出 此外 您可以使用客户端 ID 的反向 DNS 概念作为自定义 URI 方案
  • 如何在WebView中打开视频播放器?

    我有一个带有 Webview 的 WebApp 在这些页面中 我有一些视频链接 MP4 3GP 当我点击链接时 没有任何反应 public class luxgateway extends Activity WebView myWebVie
  • 具有属性的 Maven 版本

    我有大约 400 个插件的大型 Maven Tycho 项目 我们在每个 POM 文件中指定了应用程序的版本 有没有一种方法可以仅在一个地方指定所有 POM s 的版本 我希望有些人会这样想