Maven程序集从依赖项中提取资源

时间:2019-10-07 13:25:13

标签: java maven maven-assembly-plugin

我正在与maven-assembly-plugin(2.2-beta-3版本)一起构建项目。为了定义结构,我使用了自定义描述符,该描述符确实使用了

<fileSet>
    <directory>${project.basedir}/src/main/resources/stage</directory>
    <outputDirectory>conf/stage</outputDirectory>
</fileSet>

将舞台属性打包到指定的文件夹中。现在,我将舞台资源移至主项目的依赖项,因为它们共享完全相同的配置,并且每次只想更新一个文件。

现在我的问题是,我的当前描述符没有找到stage属性,因此一旦构建,我的应用程序就无法启动。为了使其正常工作,我需要将阶段资源从依赖关系中提取到指定的文件夹中。

是这样的:

<fileSet>
    <directory>my-dependency-project/src/main/resources/stage</directory>
    <outputDirectory>conf/stage</outputDirectory>
</fileSet>

但是我知道这在我测试时不起作用。另外,如果版本号确实起作用,我还需要使路径保持动态(因此,硬编码不是一种选择)。

这使我想到一个问题,即如何从Assembly.xml文件中动态引用依赖项?


编辑:

我能够将整个依赖项作为一个jar放入正确的位置,但是现在我缺少解包部分,因为那个部分无法正常工作。到目前为止,我仅添加了另一个<dependencySet>,就像这样:

<dependencySet>
    <includes>
        <include>com.company.name:artifact-id:</include>
    </includes>
    <outputDirectory>conf/stage</outputDirectory>
    <unpackOptions>
        <includes>
            <include>*.config</include>
        </includes>
    </unpackOptions>
    <!-- <unpack>true</unpack> -->  <-- this line doesn't work (if uncommented, nothing happens)
</dependencySet>

所以实际上新的问题是:

如何将依赖项中的特定文件解压缩到输出文件夹中?

0 个答案:

没有答案