【问题标题】:Reading a version through property in Maven pom.xml dependencies通过 Maven pom.xml 依赖项中的属性读取版本
【发布时间】:2015-08-05 08:43:36
【问题描述】:

我正在尝试在一个项目中更新 jstl taglib。这可以通过 maven 中的 pom.xml 来完成。 Taglibs 将根据 pom.xml 依赖版本下载。现在的问题是:

在修改前的状态下,pom.xml中jstl的依赖是这样的:

    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>jstl</artifactId>
        <version>${jstl.version}</version>
    </dependency>   

现在我想将 jstl 更新为 1.2.x 版本,因此更改非常简单。我只是将版本更改为 1.2。 Maven 将完成剩下的工作。

有什么区别

<version>${jstl.version}</version>

从存储库中下载版本 1.1.2 的 jstl 和

<version>1.2</version>

<version>1.1.2</version>

版本标签中的 ${jstl.version} 值会做什么?就我而言,它正在下载 1.1.2 版本。但是为什么是 1.1.2 而不是最新的呢?这是如何工作的?

谢谢。

【问题讨论】:

  • 您错过了下面正在发生的答题派对。
  • 是的,大声笑..我没有注意到有一个父 pom.xml 定义了属性...嗯....谢谢大家的回答:D

标签: java xml maven


【解决方案1】:

${jstl.version} 是一个property,应该在你的 pom 中定义,类似于:

<properties>
    <jstl.version>1.1.2</jstl.version>
    <!-- ... -->

【讨论】:

    【解决方案2】:
    <properties>
        <jstl.version>1.2</jstl.version>
    </properties>
    
    
    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>jstl</artifactId>
        <version>${jstl.version}</version>
    </dependency>   
    

    它将下载 jstl-1.2.jar 作为您的依赖项。 ${jstl.version} :- 它只会读取 pom.xml 中定义的属性值

    【讨论】:

      【解决方案3】:

      正如大家发布的一样,引用是一个属性,在 pom 中定义。

      您也可以按如下方式指定版本标签:

      <version>LATEST</version>
      

      响应 maven-repository 中的最新版本。

      【讨论】:

        【解决方案4】:

        ${jstl.version} 只是一个属性,您可以在 pom.xml 上定义它以将所有变量放在同一个位置。

        <properties>
            <jstl.version>1.1.2</jstl.version>
        </properties>
        

        您可以在此处指定所需的版本,可以是最新的也可以不是最新的。

        您可以在此处阅读更多信息: https://maven.apache.org/pom.html

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2013-06-06
          • 1970-01-01
          • 2016-09-18
          • 1970-01-01
          • 2014-02-19
          • 2023-03-06
          • 2022-01-22
          • 1970-01-01
          相关资源
          最近更新 更多