Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/powerbi/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Maven 将jar解压到与文件同名的文件夹中_Maven_Ant_Maven Antrun Plugin_Maven Ant Tasks - Fatal编程技术网

Maven 将jar解压到与文件同名的文件夹中

Maven 将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

我正在使用maven antrun插件将jar文件解压到一个文件夹中。这个jar文件在每个构建中都会生成,并且有一个可变的时间戳(如下面的代码段所示)。如何将jar文件解压缩到与jar文件同名的文件夹中?例如,文件夹应为/sample_TIMESTAMP,而不是/Folder

<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文件名的部分。太棒了!
正是我所需要的!非常感谢!