我有一个第三方存档(在我的情况下是IntelliJ IDEA CE),它有一个根目录,其名称我无法猜测。在unpack-dependencies
任务中,如何在没有根目录的情况下解压缩归档文件?
目前,存档中的所有文件都会被提取到
中testproject/target/dependency/IntelliJ-IDEA-CE/idea-IC-141.1532.4/
但我希望将它们提取到
中testproject/target/dependency/IntelliJ-IDEA-CE/
但保留子目录树。
这与在命令行上执行以下操作类似:
cd testproject/target/dependency/IntelliJ-IDEA-CE/
tar -xvf ideaIC-14.1.4.tar.gz --strip 1
我已经在我的本地存储库中安装了存档。这是我的pom.xml
文件:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.virtlink</groupId>
<artifactId>testproject</artifactId>
<version>0.1</version>
<dependencies>
<dependency>
<groupId>org.jetbrains</groupId>
<artifactId>org.jetbrains.intellij-ce</artifactId>
<version>14.1.4</version>
<type>tar.gz</type>
<scope>provided</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>2.10</version>
<executions>
<execution>
<id>unzip-distribution</id>
<goals>
<goal>unpack-dependencies</goal>
</goals>
<configuration>
<includeArtifactIds>org.jetbrains.intellij-ce</includeArtifactIds>
<outputDirectory>${project.build.directory}/dependency/IntelliJ-IDEA-CE</outputDirectory>
<includes>**/*.jar</includes>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.3</version>
<configuration>
<compilerArguments>
<extdirs>${project.build.directory}/dependency/IntelliJ-IDEA-CE/lib/</extdirs>
</compilerArguments>
</configuration>
</plugin>
</plugins>
</build>
</project>