java - 根据maven中的包名创建文件夹
问题描述
我正在构建一个非常简单的 java 项目,我需要执行以下操作:
我不需要打包的 .jar 文件,但需要 .class 文件以及与之相关的资源,即我具有以下结构:
这个想法是能够运行一个 maven 构建并将类和属性文件都放在一个插件文件夹下,如下所示:
这是因为我需要将具有该结构的 java 类和属性文件复制到另一个使用它们的应用程序。我想自动化构建文件夹的过程,只需复制插件文件夹并将其粘贴到使用它的应用程序中。
我怎样才能做到这一点?
解决方案
您可以在打包阶段使用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>
然后通过结合这些规则,您可以达到您想要的结构。
推荐阅读
- html - 我在使用 3 个 DIV 标签以连续放置 3 个块时遇到问题
- javascript - 运行项目时遇到 npm 问题
- alteryx - Alteryx 如何以分散的方式部署数据?
- javascript - 使用 javascript 对象创建 highchart 饼图
- php - 在 laravel 视图中显示 .txt 文件
- apache - 运行 apache 的 Docker 容器总是暴露端口 80
- wso2 - 在 wso2 中处理多个 IdP
- tensorflow - 模块“tensorflow”没有属性“GPUOptions”
- pgadmin - 是否有一个 COPY 命令等效于在 pgAdmin 中取消选择其值是默认值的列?
- css - 如何在 CSS 中使用特定的选择器定义 @keyframes