Maven 将jar解压到与文件同名的文件夹中
我正在使用maven antrun插件将jar文件解压到一个文件夹中。这个jar文件在每个构建中都会生成,并且有一个可变的时间戳(如下面的代码段所示)。如何将jar文件解压缩到与jar文件同名的文件夹中?例如,文件夹应为/sample_TIMESTAMP,而不是/FolderMaven 将jar解压到与文件同名的文件夹中,maven,ant,maven-antrun-plugin,maven-ant-tasks,Maven,Ant,Maven Antrun Plugin,Maven Ant Tasks,我正在使用maven antrun插件将jar文件解压到一个文件夹中。这个jar文件在每个构建中都会生成,并且有一个可变的时间戳(如下面的代码段所示)。如何将jar文件解压缩到与jar文件同名的文件夹中?例如,文件夹应为/sample_TIMESTAMP,而不是/Folder <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-antrun-p
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<version>1.7</version>
<executions>
<execution>
<id>unpack-jar-features</id>
<phase>install</phase>
<goals>
<goal>run</goal>
</goals>
<configuration>
<target>
<echo message="unpack jar file" />
<unzip dest="/folder">
<fileset dir="/folder">
<include name="sample_TIMESTAMP.jar" />
</fileset>
</unzip>
</target>
</configuration>
</execution>
</executions>
</plugin>
org.apache.maven.plugins
maven antrun插件
1.7
解包jar特性
安装
跑
要解压缩到新目录中,请首先使用
创建目录,然后将
的dest
更改为示例\u时间戳
:
<mkdir dir="/sample_TIMESTAMP"/>
<unzip dest="/sample_TIMESTAMP">
<fileset dir="/folder">
<include name="sample_TIMESTAMP.jar" />
</fileset>
</unzip>
您可以使用
创建具有JAR文件名的属性:
<fileset id="my-jar-file" dir="/folder">
<include name="sample_*.jar"/>
</fileset>
<pathconvert property="my-jar-file-name">
<chainedmapper>
<flattenmapper/>
<globmapper from="*.jar" to="*"/>
</chainedmapper>
<path>
<fileset refid="my-jar-file"/>
</path>
</pathconvert>
<mkdir dir="/${my-jar-file-name}"/>
<unzip dest="/${my-jar-file-name}">
<fileset refid="my-jar-file"/>
</unzip>
如果
我的jar文件
可以匹配多个jar文件,请使用将匹配限制为单个文件。此jar是如何生成的?它是由构建生成的工件吗?它的Maven坐标是多少?因为一个好方法不是使用maven antrun插件
,而是使用maven依赖插件:解包
目标。我已经尝试过maven依赖插件:解包
,但问题是我想解包特定的jar,而不是从M2 repo获取的jar。是的,但是这个特定的jar在哪里来自哪里?它是如何建造的?它是从您的项目构建的,这意味着它是一个额外的工件吗?可能有分类器吗?它来自P2存储库。它是通过使用另一个插件获取的:tycho-p2-extras-plugin
。如何从每个构建中更改的jar文件名分配value=“sample\u TIMESTAMP”?例如,它可以是sample\u 20160224.jar
或sample\u 20160223.jar
等等@GeorgiosStathis我编辑了我的答案,以演示如何使用
提取jar文件名的部分。太棒了!
正是我所需要的!非常感谢!