Maven 2 Assembly插件 - 如何将主要工件和依赖项拆分为单独的文件夹

时间:2009-07-22 22:17:44

标签: maven-2 assemblies maven-plugin

我正在使用Assembly插件为maven创建一个安装包。

对于我的打包要求,我需要将构建期间生成的工件和所有依赖项拆分为单独的文件夹。

我目前的装配清单如下:

<moduleSets>
  <moduleSet>
    <includes>
      <include>test:test</include>
    </includes>
    <binaries>
      <includeDependencies>false</includeDependencies>
      <outputDirectory>lib/custom/${artifactId}</outputDirectory>
      <unpack>false</unpack>
    </binaries>
  </moduleSet>
  <moduleSet>
    <includes>
      <include>test:test</include>
    </includes>
    <binaries>
      <includeDependencies>true</includeDependencies>
      <excludes>
        <exclude>test:test</exclude>
      </excludes>
      <outputDirectory>lib/thirdParty/</outputDirectory>
      <unpack>false</unpack>
    </binaries>
  </moduleSet>
</moduleSets>

第一个模块集正确生成当前构建的程序集。 但是,thirdParty也包含当前构建的程序集。我如何排除已包含在第一组中的文件?

由于

3 个答案:

答案 0 :(得分:1)

使用依赖项:copy-dependencies?我用它来将所有deps复制到target / lib。

答案 1 :(得分:0)

执行此操作的一种方法是使用maven-antrun-plugin和ant任务。迭代lib / custom / $ {artifactId}的内容并从lib / thirdParty中删除任何文件。

答案 2 :(得分:0)

您可能需要查看appassembler-maven-plugin。它允许您将所有运行时依赖项jar转储到目录中。你可能能够将你的主jar放在一个文件夹中,然后将依赖项转储到另一个文件夹中。