使用mvn制作archetype时过滤特定文件目录

二维码
| Feb 18, 2021 | 原创

当我们使用 maven-archetype-plugin 插件基于当前项目生成一个 achvetype 模板项目是,默认的该插件会把当前项目下所有的文件都会打包到 jar包中。

很多时候我们希望在 build 的时候能过滤一些非必要的文件目录,如 .idea、项目 README.md 说明文件等等,这时候我们需要在构建的时候,配置一个 achvetype.properties 文件参数,并在其中定义 excludePattern 属性来过滤文件或目录:

# 构建是传入配置文件
mvn archetype:create-from-project -Darchetype.properties=archetype.properties

archetype.properties 文件内置如下:

# 打包过滤文件
excludePatterns=.idea/*,README.md

excludePatterns 可以指定多个过滤条件,以英文逗号分割即可,不过需要注意的是,如果想过滤整个目录,如 .idea 目录,需要配置为: .idea/* 而不能仅填写为 idea ,这个 .gitignore 配置还是有差别的。

另外还有注意,如果需要过滤隐藏文件,例如 .idea 之类的,mvn 提供的 archetype 插件版本需要大于3.0.0 以上,否则你会发觉删除隐藏文件过滤压根不生效,请在你的项目 pom.xml 配置如下:

<plugins>
    <plugin>
        <artifactId>maven-archetype-plugin</artifactId>
        <version>3.2.0</version>
    </plugin>
</plugins>

作者:梁猿外 博客:https://gofr.co