正则表达式不起作用的Maven文件集

Shr*_*ram 4 maven maven-assembly-plugin

我正在尝试使用正则表达式,maven-assembly-plugin如下所示。有些文件的名称以ABC502开头。我正在尝试仅复制后缀为3或4的rpm。下一个不起作用。rpm名称如下

ABC5023-buildnumber.rpm

ABC5024-内部版本号.rpm

ABC5025-buildnumber.rpm

ABC5026-buildnumber.rpm

<fileSet>
    <directory>${project.build.directory}/tar_content/stackcontents/</directory>
    <outputDirectory>scripts/data/rpms/</outputDirectory>
    <includes>
        <include>%regex[ABC502(3|4)]-*.rpm</include>
    </includes>
    <fileMode>0755</fileMode>
    <directoryMode>0755</directoryMode>
</fileSet>
Run Code Online (Sandbox Code Playgroud)

Tun*_*aki 6

当您使用正则表达式通过%regex[...]语法包括或排除文件时,所有表达式都应由正则表达式组成。当用于匹配文件时,不能将正则表达式部分与普通部分混合使用。

因此,您需要使用

<fileSet>
    <directory>${project.build.directory}/tar_content/stackcontents/</directory>
    <outputDirectory>scripts/data/rpms/</outputDirectory>
    <includes>
        <include>%regex[ABC502(3|4)-.*?\.rpm]</include>
    </includes>
    <fileMode>0755</fileMode>
    <directoryMode>0755</directoryMode>
</fileSet>
Run Code Online (Sandbox Code Playgroud)

这将包括以ABC5023或ABC5024开头的所有RPM文件。