あなたはmaven-dependency-plugin
の構成でtrue
にuseBaseVersion
を設定する必要があります。
<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
を用い
A bit of explanation、。依存関係の中で"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 by adding a timestampでファイル名の最後に区別されます。したがって、異なるタイムスタンプを持つ複数の1.3.2-SNAPSHOT
を持つことができます。
今のMavenは1.3.2.BUILD-SNAPSHOT
は、それがある、1.3.2.BUILD-SNAPSHOT
に特異的であることを別のmaven-metadata.xml
を探し、考慮すべきものであることを知っている:
<?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はタイムスタンプ付きのアーティファクトを使用してダウンロードします。
だから最終的に:
- 基本バージョンは
1.3.2.BUILD-SNAPSHOT
、アーチファクトのスナップショット・バージョンに対応する - この例では。
- この例では、バージョンは最新のスナップショットのタイムスタンプ付きバージョン
1.3.2.BUILD-20150115.230511-1
に対応します。
このように、useBaseVersion
は、タイムスタンプのないファイルを出力することを許可します。スナップショット版の代わりにリリース版を扱う場合、どちらも同じになります。
ありがとうございます。私はスナップショットバージョンを使用しており、バージョン番号だけを含むようにファイル名を変更したい。 (そうでなければ、ファイル名はMy_File_Name-version-20160630.212007-10です) – lili