build-helper-maven-plugin 配置多 source resource 文件
http://gaolixu.iteye.com/blog/571216
1. 配置项目的pom文件(Maven配置文件)
1.1 Maven 默认的源文件夹及资源文件夹配置
Maven 默认的源文件夹及资源文件夹的配置代码如下:
- <build>
- ...
- < sourceDirectory > src/main/java </ sourceDirectory >
- < testSourceDirectory > src/test/java </ testSourceDirectory >
- < resources >
- < resource >
- < directory > src/main/resources </ directory >
- </ resource >
- </ resources >
- < testResources >
- < testResource >
- < directory > src/test/resources </ directory >
- </ testResource >
- </ testResources >
- ...
- </build>
<build> ... < sourceDirectory > src/main/java </ sourceDirectory > < testSourceDirectory > src/test/java </ testSourceDirectory > < resources > < resource > < directory > src/main/resources </ directory > </ resource > </ resources > < testResources > < testResource > < directory > src/test/resources </ directory > </ testResource > </ testResources > ... </build>
在 eclipse 下,项目源文件夹及资源文件夹展现成这样:
1.2 配置多个资源文件夹
从上面 Maven 的默认配置来看,源文件夹和测试源文件夹都只能配置一个,要配置多个源文件夹比较困难。这里我们先展示如何配置多个资源文件夹。
有人会认为,在 eclipse 下将这些文件夹都设置为源文件夹不就 OK 了吗?其实不然, Maven 在构建的时候并不会去读取任何 IDE 的配置信息,所以他不会知道我们在 eclipse 下指定的源文件夹,也不会将这些源文件夹下的代码编译打包。
配置多个资源文件夹的代码:
- <build>
- ...
- < resources >
- < resource >
- < directory > src/main/resources </ directory >
- </ resource >
- < resource >
- < directory > src/labs/resources </ directory >
- </ resource >
- </ resources >
- ...
- </build>
<build> ... < resources > < resource > < directory > src/main/resources </ directory > </ resource > < resource > < directory > src/labs/resources </ directory > </ resource > </ resources > ... </build>
配置好以后, IDE ( eclipse )不会识别我们的配置,我们需要更新项目的配置:
更新后, 在 eclipse 下项目源文件夹及资源文件夹展现成这样(多了一个资源文件夹):
1.3 配置读取源文件夹里的资源文件
为了让 Maven 能够从源文件夹下读取资源文件(或将所有资源文件配置到源文件夹下),我们可以这样配置:
- <build>
- ...
- < resources >
- < resource >
- < directory > src/main/resources </ directory >
- </ resource >
- < resource >
- < directory > src/labs/resources </ directory >
- </ resource >
- < resource >
- < directory > src/main/java </ directory >
- < includes >
- < include > **/*.hbm.xml </ include >
- </ includes >
- </ resource >
- < resource >
- < directory > src/labs/java </ directory >
- < includes >
- < include > **/*.hbm.xml </ include >
- </ includes >
- </ resource >
- </ resources >
- ...
- </build>
<build> ... < resources > < resource > < directory > src/main/resources </ directory > </ resource > < resource > < directory > src/labs/resources </ directory > </ resource > < resource > < directory > src/main/java </ directory > < includes > < include > **/*.hbm.xml </ include > </ includes > </ resource > < resource > < directory > src/labs/java </ directory > < includes > < include > **/*.hbm.xml </ include > </ includes > </ resource > </ resources > ... </build>
这样,不仅 src/main/resources 和 src/labs/resources 这两个目录下的文件会作为资源文件被打包, src/main/java 和 src/labs/java 目录下的所有 .hbm.xml 文件也都会作为资源文件被打包。否则, Maven 构建时不会打包这两个目录下的 .hbm.xml 文件,导致运行时因为找不到资源文件而抛异常。
1.4 配置多个源文件夹
前面讲过, Maven 默认只支持一个源文件夹,为了给项目配置多个源文件夹,我们需要用到一个 Maven 插件,目的是在 Maven 构建生命周期内为项目添加源文件夹:
- <build>
- ...
- <plugins>
- ...
- <!-- build-helper-maven-plugin, 设置多个源文件夹 -->
- <plugin>
- <groupId>org.codehaus.mojo</groupId>
- <artifactId>build-helper-maven-plugin</artifactId>
- <version>1.4</version>
- <executions>
- <execution>
- <id>add-source</id>
- <phase>generate-sources</phase>
- <goals>
- <goal>add-source</goal>
- </goals>
- <configuration>
- <sources>
- <source>${basedir}/src/labs/java</source>
- <!-- 我们可以通过在这里添加多个source节点,来添加任意多个源文件夹 -->
- </sources>
- </configuration>
- </execution>
<build> ... <plugins> ... <!-- build-helper-maven-plugin, 设置多个源文件夹 --> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>build-helper-maven-plugin</artifactId> <version>1.4</version> <executions> <execution> <id>add-source</id> <phase>generate-sources</phase> <goals> <goal>add-source</goal> </goals> <configuration> <sources> <source>${basedir}/src/labs/java</source> <!-- 我们可以通过在这里添加多个source节点,来添加任意多个源文件夹 --> </sources> </configuration> </execution>
- 还可以加resources: <execution>
- <id>add-resource</id>
- <phase>generate-sources</phase>
- <goals>
- <goal>add-test-resource</goal>
- </goals>
- <configuration>
- <resources>
- < resource >
- < directory >${basedir} src/labs/resource </ directory >
- < /resource >
- </resources>
- </configuration>
- </execution>
- </executions>
- </plugin>
- ...
- </plugins>
- ...
- </build>
还可以加resources: <execution> <id>add-resource</id> <phase>generate-sources</phase> <goals> <goal>add-test-resource</goal> </goals> <configuration> <resources> < resource > < directory >${basedir} src/labs/resource </ directory > < /resource > </resources> </configuration> </execution> </executions> </plugin> ... </plugins> ... </build>
更新项目配置(操作同2.2)后,在eclipse下项目源文件夹及资源文件夹展现成这样(多了一个源文件夹):
-------------------------------------------
http://mojo.codehaus.org/build-helper-maven-plugin/usage.html
http://mojo.codehaus.org/build-helper-maven-plugin/
Maven默认只允许指定一个主Java代码目录和一个测试Java代码目录,虽然这其实是个应当尽量遵守的约定,但偶尔你还是会希望能够指定多个源码目录(例如为了应对遗留项目),build-helper-maven-plugin的add-source目标就是服务于这个目的,通常它被绑定到默认生命周期的generate-sources阶段以添加额外的源码目录。需要强调的是,这种做法还是不推荐的,因为它破坏了 Maven的约定,而且可能会遇到其他严格遵守约定的插件工具无法正确识别额外的源码目录。
build-helper-maven-plugin的另一个非常有用的目标是attach-artifact,使用该目标你可以以classifier的形式选取部分项目文件生成附属构件,并同时install到本地仓库,也可以deploy到远程仓库。
http://mojo.codehaus.org/build-helper-maven-plugin/usage.html
build-helper-maven-plugin 配置多 source resource 文件相关推荐
- no main manifest attribute maven package 运行打包后的jar包报错:xxx.jar中没有主清单属性 通过配置 maven plugin 解决
文章目录 命令行运行生成的jar包,报错 解决 手动修复 修改打包规则 一劳永逸 MANIFEST.MF demo Others IDEA 中关于 main class 的配置 命令行运行生成的jar ...
- eclipse maven plugin 插件 安装 和 配置
本文转自:http://www.blogjava.net/fancydeepin/archive/2012/07/13/eclipse_maven3_plugin.html maven3 安装: 安装 ...
- 【Maven】Maven POM配置详解
就像web项目的核心是web.xml一样,Maven项目的核心是pom.xml,POM(project object model,项目对象模型)定义了项目的基本信息,用于描述项目如何构建,如何声明依赖 ...
- maven教程 IDEA中使用Maven Tomcat配置 依赖管理
1.背景 1.1 软件是一个工程 我们在日常生活常能听到工程这个词,像桥梁工程.道路工程.南水北调工程等等. 工程说简单点就是各个行业的从业人员通过总结规律或者方法,以最短的时间和人力.物力来做出高效 ...
- 配置maven仓库 手写maven项目 配置maven打包
配置maven仓库 手写maven项目 配置maven打包 操作录像 maven环境变量 maven仓库 maven标准pom.xml maven打包插件 附录:FreeBSD默认环境变量 操作录像 ...
- Maven的配置与案例
Maven 1. 主要内容 2. Maven的简介 2.1. 简介 Maven[[ˈmevən]]这个词可以翻译为"专家","内⾏". 作为Apache组织中的 ...
- Maven(插件配置和生命周期的绑定)
1.这篇文章很好,介绍的maven插件的. 2.maven的source插件为例,可以把源代码打成包. Goals Overview就可以查看该插件下面所有的目标. 这里我们要使用的是source:j ...
- maven的安装、路径配置、修改库文件路径和eclipse中的配置、创建maven工程(转)...
一.maven的安装 首先,先到官网去下载maven.这里是官网的地址:http://maven.apache.org/download.cgi 请选择最新的版本下载: 解压apache-maven ...
- springboot学习记录--Maven setting配置
Maven setting配置镜像仓库 配置本地仓库 1 <!--自定义本地仓库路径--> 2 <localRepository>D:\JAVA\MavenRepositor ...
最新文章
- linux tomcat 进程杀掉_Linux-(一)常用命令总结
- openlayers2中selectcontrol用法
- appium java 点击坐标_appium定位元素java篇【转】
- Cannot add or update a child row: a foreign key constraint fails (`university`.`instructor`, CONSTRA
- 人脸检测与识别年度进展概述
- UBUNtu·E: 无法获得锁 /var/lib/apt/lists/lock - open (11: 资源暂时不可用) E: 无法对目录 /var/lib/apt/lists/ 加锁 问题解决方法
- idead断点调试_IDEA---断点调试Debug
- 浙江高级会计师评审计算机要求,浙江2020年高级会计师评审申报论文要求
- Windows10安装VMware(图文教程)
- eclipse切换git分支
- ThinkPHP删除指定文件(物理删除)
- 《GO并发编程实战》—— 临时对象池
- 容器技术Docker K8s 50 容器镜像服务(ACR)详解-使用与实践
- 基于汽车运动学模型的LQR控制
- 思科交换机dhcp配置
- 演化算法与适应度地形分析——再度思考
- 126 删除邮件 服务器,网易126邮箱中的邮件莫名奇妙被删除
- 强强联合丨谱尼测试与北大医疗鲁中医院开启战略合作新征程
- android mcc 模拟,Android 读取MCC, MNC
- Quirks模式与标准模式
热门文章
- 303. 区域和检索 - 数组不可变
- 《每日一题》290. Word Pattern
- django makemigrtions时出现no changes detected 解决方式
- Spring Boot (一)Spring Boot 概述
- ROS中配置主从机需注意的几点
- mysql 12142_php连接mysql的类mysql.class.php
- sparksql(2)——dataframe的ap-printSchema、withColum、count、drop、describe、select
- matlab-Grefenstette的编码与解码
- hibernate更新部分字段的几种方法
- pixhawk 整体架构的认识