我正在与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>
所以实际上新的问题是:
如何将依赖项中的特定文件解压缩到输出文件夹中?