代码之家  ›  专栏  ›  技术社区  ›  Sean Patrick Floyd

打开焦油.gz使用mvnd进行正确的路径选择依附性:打开包装

  •  0
  • Sean Patrick Floyd  · 技术社区  · 6 年前

    在Maven构建中,我想下载并解包焦油.gz钥匙斗篷的分发。

    下面是我的相关配置 maven-dependency-plugin :

    <execution>
      <id>unpack-keycloak</id>
      <goals>
        <goal>unpack</goal>
      </goals>
      <phase>generate-resources</phase>
      <configuration>
        <artifactItems>
          <artifactItem>
            <groupId>org.keycloak</groupId>
            <artifactId>keycloak-server-dist</artifactId>
            <version>${keycloak.version}</version>
            <type>tar.gz</type>
            <outputDirectory>/opt/jboss/keycloak</outputDirectory>
            <includes>**/*</includes>
          </artifactItem>
        </artifactItems>
      </configuration>
    </execution>
    

    不幸的是,这会导致归档文件在/opt/jboss/keydove/keydove-10.0.1中解包,而不是在/opt/jboss/keydove中解包。有什么办法可以去掉中间目录吗?

    显然,我知道很多方法在解包后移动归档文件,但我正在寻找一个解决方案,因为我有同一个插件的后续执行,希望发行版已经正确就位。

    0 回复  |  直到 6 年前
        1
  •  1
  •   Sean Patrick Floyd    6 年前

    从文档中: https://maven.apache.org/plugins/maven-dependency-plugin/examples/unpacking-filemapper.html

    见第21-26行

    从OP编辑:
    这是正确的答案,但是由于文档一点也不明显,这里有一个工作配置

      <execution>
        <id>unpack-keycloak</id>
        <goals>
          <goal>unpack</goal>
        </goals>
        <phase>generate-resources</phase>
        <configuration>
          <artifactItems>
            <artifactItem>
              <groupId>org.keycloak</groupId>
              <artifactId>keycloak-server-dist</artifactId>
              <version>${keycloak.version}</version>
              <type>tar.gz</type>
              <outputDirectory>/opt/jboss/keycloak</outputDirectory>
              <includes>**/*</includes>
              <fileMappers>
                <org.codehaus.plexus.components.io.filemappers.RegExpFileMapper>
                  <pattern>^\Qkeycloak-${keycloak.version}/\E</pattern>
                  <replacement>./</replacement>
                </org.codehaus.plexus.components.io.filemappers.RegExpFileMapper>
              </fileMappers>
            </artifactItem>
          </artifactItems>
        </configuration>
      </execution>