Maven 为我们提供了一致的项目目录配置(源文件夹、资源文件夹等),在自动构建项目时, Maven 会按照这个配置来执行操作(编译源文件、拷贝资源文件)。
当 Maven 规约的默认配置不能够满足我们的需求时,我们就要动手修改项目的 Maven 配置,让我们的项目能够与 Maven 很好地协同工作。这里讨论的需求有:
- 配置多个源文件夹来管理我们项目的模块
- 配置多个资源文件夹来管理我们项目模块的资源文件
- 有些遗留代码的一些资源文件是放在源文件夹下的,为了不改变原有项目结构,我希望 Maven 能够从源文件夹下读取资源文件
- 我想将项目模块的源文件和资源文件放置在同一个文件夹下,以方便开发与维护
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>
- </executions>
- </plugin>
- ...
- </plugins>
- ...
- </build>
<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> </executions> </plugin> ... </plugins> ... </build>
更新项目配置(操作同2.2)后,在eclipse下项目源文件夹及资源文件夹展现成这样(多了一个源文件夹):
相关推荐
用maven创建一个ssm项目,每一层的代码分开,把一个项目拆解成多个项目 2.[今日包含笔记] maven介绍: Eclise: 缺点: Jar包: 版本管理,解决jar包冲突:删除老的jar包,保留新的jar包 不同的项目,jar包要复制一份;...
比如我的是 D:\Taylorspace\test\target在这个文件夹下我们会 看到一个名为test-0.0.1.jar的文件。总结: 从中可以看到Maven的两个作用 1。管理library 包。在开发过程中我们回遇到这么一种情况,比如你建了 两个...
它包含许多可配置的Maven配置文件,旨在处理整个构建过程的不同任务。 其中一些由属性自动激活,其他一些由子项目目录中找到的文件自动激活。 以fpom开头的项目是用于集中常见依赖类型的POM片段。 概念 构造parent...
我的项目是用maven搭建的,如果你配置了maven,那么就会可以很轻松的运行起项目来了, 步骤: 1、在我的项目下找到database文件夹,把里面的union_ssh.sql文件导入到mysql数据库中 2、导入项目SSHMS到myEclipse中 3...
2.选择你的Maven文件夹 3.如图: 4.apply 5.改maven中conf文件夹下setting文件(编辑器打开) 6.修改仓库 7.此处添加自己的仓库路径(切记全程英文路径) 8.找到mirrors标签 9.修改为(其实就是在注释外添加) ...
dart:dart2js现在可以跨threadCount并行编译多个编译器会话 dart:pub现在通过提供pubCommand例如get和pubOptions列表(例如--no-offline get完全灵活 #设置 该插件需要在应执行的系统上安装dart-sdk。 默认情况下...
该插件将分析React器构建顺序,并将创建一个文件夹结构,其中包含来自React器内的一个或多个工件,它们的依赖关系的正确顺序。 目前,文件夹只是简单的数字,如 1、2、3 等。这意味着您可以完全按照给定的顺序 1、2...
>模块->源下)配置为8蚀将工作空间设置为该存储库的父文件夹将此存储库的根文件夹作为Eclipse中的现有Maven项目导入将项目Java编译器合规性级别配置为1.8 将JRE库设置为JRE 1.8 “目标/生成源/**/*.java”的“ ...
在Maven Central上发布需要太多配置吗? 好吧,我同意。 通过自动配置(在应用时)Java插件和Publish插件来创建源jar和Javadoc jar,为您签名并发送到OSSRH的Sonatype Nexus,此插件可简化您的生活。 用法 提供的...
为maven项目配置文件 FileSync 是已经编译封装好的,拿来即用,只要启动该文件夹下start.sh就可以使用 ##注 目前本工程暂不支持window系统,只支持linux系统,且依赖linux命令rsync,在没有安装rync的情况下,请先...
http://www.jetbrains.com/idea/idea教程目录:- idea下载和安装- idea配置jdk、maven- 使用idea创建一个maven管理的工程/创建一个SpringBoot工程- idea中多窗口项目显示技巧- idea快捷键设置- 配置tomcat并部署项目...
在嵌套两个或多个文件夹的结构中,为该文件夹定义的任何属性都将被其子文件夹之一定义的同名其他任何属性覆盖。开发为了便于开发,我添加了logging.properties文件,可以通过将其指定为Maven hpi:run目标的选项来...
使用注意 1.开发工具的选择 请使用 IntelliJ IDEA, 尽量不要用 Eclipse/MyEclipse,使用前者项目起不...5.项目首页没有文件夹名称 确保 tomcat 配置中 application context 是 /,而不是 /ForestBlog。这是导致你们首页
单点登录系统:为多个系统之间提供用户登录凭证以及查询登录用户的信息。 2.3. 技术架构 2.3.1. 传统架构 思考:有什么问题? 1、 模块之间耦合度太高,其中一个升级其他都得升级 2、 开发困难,各个团队...
Foweb框架一个基于Spring + SpringMVC + Mybatis的多模块Maven项目。一个基于Spring + SpringMVC + Mybatis的Maven多模块项目。使用文档两种使用方式:1.直接将项目下载下来,然后在IDE(Eclipse或IDEA)中以maven...
该项目包含一个基于Java EE 7的完全正常运行的应用程序。主要基于Adam Bien的有效Java EE课程,网址为: 项目文件夹doit 视频01.初始Maven设置 使用Java EE的最佳方法是基于Adam Bien创建的原型来启动Maven项目: ...
用ieda介绍maven项目HtxkEmsm 按需更改HtxkEmsm-admin模块下资源的application.yml sqpringboot主配置文件 ruoyi : # 名称 name : RuoYi # 版本 version : 4.1.0 # 版权年份 copyrightYear : 2019 # 实例演示开关 ...
这个项目要做的事情很多,但是更多的是测试不同的技术。 要运行该应用程序,您需要转到docker文件夹,运行docker和一个 docker container run -d --name=pg -p 5432:5432 -e POSTGRES_PASSWORD=1234 -e PGDATA=/...
5、还原resources文件夹(配置文件信息)中的内容:依然在解压的.war文件中找:WEB-INF->classes中的内容(除了com该文件,这个文件其实是本项目命名的存放java类的文件;其它项目有可能不同) 6、还原java文件夹...
一个示例的Swing桌面应用程序/ MDI(多文档界面)可帮助开发人员快速启动新项目...该应用程序已预先配置了Maven,Log4j和resources文件夹下的自动加载属性文件。 开发工具 Java JDK 1.8 AWT 摇摆 MDI(多文档接口...