如何重命名最新快照版本以包括版本号

丽丽

问题:如何重命名文件的快照版本以包括版本号?

<version>LATEST</version>用来下载最新版本,但是如何在中使用它<destFileName>呢?

${project.dependencies[0].version}给我版本LATEST

<artifactItem>
    <groupId>my.group</groupId>
    <artifactId>my.artifact</artifactId>
    <version>LATEST</version>
    <type>exe</type>
    <overWrite>true</overWrite
    <outputDirectory>target/downloads</outputDirectory>
    <destFileName>${project.dependencies[0].version}_My_File_Name.exe</destFileName>
</artifactItem>

我正在使用快照版本,并且想要更改文件名以仅包含版本号。(否则文件名为My_File_Name-version-20160630.212007-10)。

图那基

您需要在的配置中设置useBaseVersiontruemaven-dependency-plugin

<configuration>
    <artifactItems>
        <artifactItem>
            <groupId>my.group</groupId>
            <artifactId>my.artifact</artifactId>
            <version>LATEST</version>
            <type>exe</type>
            <overWrite>true</overWrite>
            <outputDirectory>target/downloads</outputDirectory>
        </artifactItem>
    </artifactItems>
    <useBaseVersion>true</useBaseVersion>
</configuration>

此参数是在插件的2.7版中引入的。


有点解释,以人工制品为例org.springframework.batch:spring-batch-admin-manager当您将其"LATEST"用作依赖项中的版本时,Maven将从名为的已配置远程存储库中获取文件maven-metadata.xml该文件包含为groupId:artifactId依赖项部署的所有版本的信息

这是一个这样的文件的例子

<?xml version="1.0" encoding="UTF-8"?>
<metadata modelVersion="1.1.0">
  <groupId>org.springframework.batch</groupId>
  <artifactId>spring-batch-admin-manager</artifactId>
  <versioning>
    <latest>1.3.2.BUILD-SNAPSHOT</latest> <!-- This is the LATEST to use! -->
    <release></release>
    <versions>
      <version>1.3.1.BUILD-SNAPSHOT</version>
      <version>1.3.2.BUILD-SNAPSHOT</version>
    </versions>
    <lastUpdated>20150122163642</lastUpdated>
  </versioning>
</metadata>

除其他外,它声明<latest>元素内部的最新版本在这种情况下,最新版本为1.3.2.BUILD-SNAPSHOT

但是,这是SNAPSHOT版本,这意味着同一个快照实际上可以有多个快照版本1.3.2.BUILD-SNAPSHOT在Maven 3中,通过在文件名末尾添加时间戳来区分它们因此,您可以具有多个1.3.2-SNAPSHOT带有不同时间戳的时间戳。

既然Maven知道这1.3.2.BUILD-SNAPSHOT是要考虑的一个,那么它将查找maven-metadata.xml特定于的另一个1.3.2.BUILD-SNAPSHOT,即:

<?xml version="1.0" encoding="UTF-8"?>
<metadata modelVersion="1.1.0">
  <groupId>org.springframework.batch</groupId>
  <artifactId>spring-batch-admin-manager</artifactId>
  <version>1.3.2.BUILD-SNAPSHOT</version>
  <versioning>
    <snapshot>
      <timestamp>20150115.230511</timestamp>  <!-- This is the timestamp to use! -->
      <buildNumber>1</buildNumber>
    </snapshot>
    <lastUpdated>20150122163642</lastUpdated>
    <snapshotVersions>
      <snapshotVersion>
        <extension>jar</extension>
        <value>1.3.2.BUILD-20150115.230511-1</value>
        <updated>20150115230511</updated>
      </snapshotVersion>
      <!-- omitted for brevity -->
  </versioning>
</metadata>

该文件特别是在<timestamp>元素内部声明了已部署快照版本的最新时间戳Maven将使用并下载带有时间戳的工件。

所以最后:

  • 基本版本将对应于工件的SNAPSHOT版本,1.3.2.BUILD-SNAPSHOT在此示例中;
  • 1.3.2.BUILD-20150115.230511-1在此示例中,该版本将与最新快照的带时间戳的版本相对应

这样,useBaseVersion将允许输出没有时间戳的文件。当处理发行版本而不是快照版本时,两者将是相同的。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何重命名最新快照版本以包括版本号

来自分类Dev

如何获取快照包的版本号?

来自分类Dev

如何获取快照包的版本号?

来自分类Dev

最新的内核版本号?

来自分类Dev

如何在 CMake 中安装时使用版本号重命名/修改目标文件?

来自分类Dev

先前版本号的版本号

来自分类Dev

版本号验证

来自分类Dev

SSMS版本号

来自分类Dev

flyway如何对版本号进行排序?

来自分类Dev

如何从输出中获取版本号

来自分类Dev

Windows版本号如何工作?

来自分类Dev

如何grep XRDP版本号?

来自分类Dev

如何隐藏Dnsmasq版本号?

来自分类Dev

如何使用sed提取版本号?

来自分类Dev

如何使用sed获取版本号

来自分类Dev

如何检查更大或更小的版本号

来自分类Dev

如何比较版本号python

来自分类Dev

如何检查版本号是否是两个版本号之间的版本

来自分类Dev

编译共享库时包括版本号

来自分类Dev

用于脚本的最新 Joomla 发行版本号

来自分类Dev

如何在NPM版本中表示内部版本号?

来自分类Dev

如何根据上次批准的iOS版本增加版本号

来自分类Dev

获取标有“(最新安装的版本)”的Windows SDK版本的完整版本号

来自分类Dev

RewriteRule删除版本号

来自分类Dev

powershell版本号比较

来自分类Dev

获取应用版本号

来自分类Dev

RewriteRule删除版本号

来自分类Dev

我的debian版本号

来自分类Dev

Linux版本号约定