首页 > 解决方案 > 根据maven中的包名创建文件夹

问题描述

我正在构建一个非常简单的 java 项目,我需要执行以下操作:

我不需要打包的 .jar 文件,但需要 .class 文件以及与之相关的资源,即我具有以下结构:

在此处输入图像描述

这个想法是能够运行一个 maven 构建并将类和属性文件都放在一个插件文件夹下,如下所示:

在此处输入图像描述

这是因为我需要将具有该结构的 java 类和属性文件复制到另一个使用它们的应用程序。我想自动化构建文件夹的过程,只需复制插件文件夹并将其粘贴到使用它的应用程序中。

我怎样才能做到这一点?

标签: javamavenmaven-plugin

解决方案


您可以在打包阶段使用Maven AntRun执行简单的文件操作,例如(复制、移动文件)。

一个基本的例子是这样的:

<plugin>
    <artifactId>maven-antrun-plugin</artifactId>
    <executions>
        <execution>
            <phase>package</phase>
            <configuration>
                <tasks>
                    <!-- create a directory -->
                     <mkdir dir="plugins"/>
                     <!-- copy files from one dir to another -->
                     <copy todir="put your target directory here">
                        <fileset dir="put your source directory here">
                            <exclude name="**/something/**"/>
                        </fileset>
                    </copy>
                 </tasks>
            </configuration>
            <goals>
                <goal>run</goal>
            </goals>
        </execution>
    </executions>
</plugin>

您可以使用该<tasks>列表来指定应复制(移动或删除)的内容以及要创建的目录和位置。

例如

<mkdir dir="target/plugins"/>

可以创建target/plugins目录,然后您可以使用以下命令将文件复制到其中:

<copy todir="put your target directory here">
    <fileset dir="put your source directory here">
        <exclude name="**/something/**"/>
    </fileset>
</copy>

然后通过结合这些规则,您可以达到您想要的结构。


推荐阅读