如何在 Maven 程序集的 basedir 中包含所有文件(不是目录)

jav*_*dba 3 maven maven-assembly-plugin

在如下所示的 Maven 程序集中,结果是发生递归,重新包含基目录。

以下失败实际上消耗了 cpu 并且不返回:

<assembly xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2 http://maven.apache.org/xsd/assembly-1.1.2.xsd">
  <id>deploy</id>
  <baseDirectory>hive</baseDirectory>
    <includeBaseDirectory></includeBaseDirectory>
    <formats>
    <format>zip</format>
  </formats>
  <fileSets>
        <fileSet>
            <directory>${basedir}/lib</directory>
            <outputDirectory>lib</outputDirectory>
        </fileSet>
      <fileSet>
            <directory>${basedir}</directory>
            <outputDirectory></outputDirectory>
        </fileSet>
  </fileSets>
  <files>
    <file>
        <source>${basedir}/target/${project.build.finalName}.jar</source>
        <outputDirectory>lib</outputDirectory>
    </file>
  </files>
</assembly>
Run Code Online (Sandbox Code Playgroud)

如果没有包含基目录,则 lib/* 下的文件将被正确包含并且汇编成功。那么..这里正确的语法是什么?谢谢!

以下构建了一个输出 zip,但没有基本目录中的文件 - 所以它不完整:

    <assembly xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2 http://maven.apache.org/xsd/assembly-1.1.2.xsd">
  <id>deploy</id>
  <baseDirectory>hive</baseDirectory>
    <includeBaseDirectory></includeBaseDirectory>
    <formats>
    <format>zip</format>
  </formats>
  <fileSets>
        <fileSet>
            <directory>${basedir}/lib</directory>
            <outputDirectory>lib</outputDirectory>
        </fileSet>
  </fileSets>
  <files>
    <file>
        <source>${basedir}/target/${project.build.finalName}.jar</source>
        <outputDirectory>lib</outputDirectory>
    </file>
  </files>
</assembly>
Run Code Online (Sandbox Code Playgroud)

jav*_*dba 5

include以下是使用s 和通配符来执行此操作的方法:

        <fileSet>
        <directory>${basedir}</directory>
        <outputDirectory>/</outputDirectory>
        <includes>
            <include>*.rb</include>
            <include>*.sh</include>
            <include>*.properties</include>
        </includes>
    </fileSet>
Run Code Online (Sandbox Code Playgroud)