maven-assembly-plugin 在 zip 的根级别包含 *.properties

maven-assembly-plugin include *.properties at root level of zip

我试图让 Maven 在压缩我的工件时包含我的 *.properties 文件。它们位于 src/main/resources 内。我尝试将 fileSet 元素添加到我的程序集文件中,但资源未包含在 zip 中。我看到 this question 这似乎表明添加 fileSet 应该有效。

plugins.xml:

<?xml version="1.0"?>
<assembly>
    <id>release</id>
    <formats>
        <format>zip</format>
    </formats>
    <includeBaseDirectory>false</includeBaseDirectory>
    <fileSets>
            <fileSet>
                <directory>${project.build.directory}</directory>
                <outputDirectory>/</outputDirectory>
                <includes>
                    <include>*.properties</include>
                </includes>
            </fileSet>
    </fileSets> 
    <dependencySets>
        <dependencySet>
            <outputDirectory>/</outputDirectory>
            <useProjectArtifact>true</useProjectArtifact>
            <useTransitiveFiltering>true</useTransitiveFiltering>
        </dependencySet>
    </dependencySets>
</assembly>

您想包含在 ZIP 中的属性位于项目的 src/main/resources 源目录中。所以 <fileSet> 元素应该指向这个目录。

${project.build.directory}为Maven当前构建目录,默认为target。您还可以指向 Maven 在构建期间复制所有资源的临时目录,但最好尽可能坚持使用永久数据。

因此,您只需将 <fileSet> 元素更改为:

<directory>src/main/resources</directory>