【问题标题】:create folder based on package name in maven根据maven中的包名创建文件夹
【发布时间】:2018-09-27 13:39:50
【问题描述】:

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

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

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

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

我怎样才能做到这一点?

【问题讨论】:

  • 你应该学会像 Maven 和许多其他工具一样工作。通过使用将放置在类路径中的 jar 文件来使用依赖项。这意味着您的项目应该创建一个 jar 文件,您可以通过 mvn clean install 将其安装到本地缓存中,在您的其他项目中,您可以简单地定义对它的依赖项以使用它...

标签: java maven maven-plugin


【解决方案1】:

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

您可以使用&lt;tasks&gt; 列表来指定应复制(移动或删除)的内容以及要创建的目录。

例如

<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>

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

【讨论】:

    猜你喜欢
    • 2021-07-13
    • 1970-01-01
    • 2021-09-27
    • 1970-01-01
    • 2018-11-15
    • 2018-12-09
    • 1970-01-01
    • 2021-01-01
    相关资源
    最近更新 更多