发行说明 – Maven 3.2.2

Maven 3.2.2

Apache Maven 团队宣布发布 Maven 3.2.2。

Maven 3.2.2可供下载

Maven 是一个软件项目管理和理解工具。基于项目对象模型 (POM) 的概念,Maven 可以从一个中心位置管理项目的构建、报告和文档。

Maven 3 旨在确保与 Maven 2 的向后兼容性,提高可用性,提高性能,允许安全嵌入,并为实现许多高要求的特性铺平道路。

核心版本独立于可用的插件。插件的进一步版本将单独制作。有关更多信息,请参阅插件列表。

我们希望您喜欢使用 Maven!如果您有任何问题,请咨询:

完整的变更列表可以在我们的问题管理系统中找到。

强调

支持父元素中的版本范围 ( MNG-2199 )

父元素现在可以在版本规范中使用有界范围。您现在可以对所有项目内依赖项始终使用范围,其中父项是一种特殊情况,但仍被视为从它们继承的项目的依赖项。现在允许执行以下操作:

<project>
  <modelVersion>4.0.0</modelVersion>
  <parent>
    <groupId>org.apache</groupId>
    <artifactId>apache</artifactId>
    <version>[3.0,4.0)</version>
  </parent>
  <groupId>org.apache.maven.its.mng2199</groupId>
  <artifactId>valid</artifactId>
  <version>1</version>
  <packaging>pom</packaging>
</project>

请注意,这需要 Maven 3.2.2,因此如果您使用此新功能,建议您在构建中添加 Maven Enforcer 规则以确保使用 Maven 3.2.2+。

要求多个配置文件激活条件为真不起作用 ( MNG-4565 )

多个配置文件激活条件现在是 ANDed 而不是 ORed。我们认为这是正确的行为,因为在此更改之前激活需要多个条件的配置文件是不可能的。如果您确实需要 OR 行为,那么您可以使用单个条件创建多个配置文件。配置文件当然有限制,并且可以通过使用单个自定义激活器来解决,而无需在 POM 中使用条件语法,该激活器采用像MVEL这样​​的表达式语言。

支持从包含 ${parameter} 的 Repo 解析 Import Scope POM ( MNG-5639 )

此功能有助于支持使用单独的沙盒存储库设置多个开发流的模式,该存储库包含多个共享组件的特定版本。存储库配置可能使用 ${nexus.baseurl}/content/groups/${stream.name} 模式,其中属性在 settings.xml 文件中设置。

更新 maven-plugin-plugin:descriptor 默认绑定从 generate-resources 阶段到 process-classes ( MNG-5346 )

现在,当您使用严格使用注解处理来生成描述符的创建插件时,您可以避免之前需要的混乱配置。这是您通常需要包含的内容,以便在已编译的类上运行描述符生成器并避免错误。

    <pluginManagement>
      <plugins>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-plugin-plugin</artifactId>
          <version>${mavenPluginPluginVersion}</version>
          <configuration>
            <skipErrorNoDescriptorsFound>true</skipErrorNoDescriptorsFound>
          </configuration>
          <executions>
            <execution>
              <id>mojo-descriptor</id>
              <phase>process-classes</phase>
              <goals>
                <goal>descriptor</goal>
              </goals>
            </execution>
          </executions>
        </plugin>
      </plugins>
    </pluginManagement>

当您使用 maven-plugin-plugin 的 3.2+ 版本时,这不再需要并且可以省略。

${maven.build.timestamp} 应该使用 UTC 而不是本地时区(或可配置)(MNG-5452

这提供了一种创建构建时间戳的标准方法,并允许与使用 UTC 作为时间戳的系统(如 Eclipse Tycho)更好的互操作性。

${maven.build.timestamp} 使用了错误的 ISO 日期时间分隔符 ( MNG-5647 )

默认格式已更改为标准 ISO 8601 ( yyyy-MM-dd'T'HH:mm:ss'Z') 以使其可被解析器预测。

完整的发行说明

查看所有版本的完整发行说明