根据包名称在Maven中创建文件夹

时间:2018-09-27 13:39:51

标签: java maven maven-plugin

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

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

enter image description here

这个想法是要能够运行Maven构建并将类和属性文件全部放在如下所示的plugins文件夹中:

enter image description here

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

我该如何实现?

1 个答案:

答案 0 :(得分:0)

在打包阶段,您可以使用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>

然后通过组合这些规则,您可以达到所需的结构。