maven资源文件的相关配置才会在编译后的target里面有
来源:互联网 发布:moment.js实现国际化 编辑:程序博客网 时间:2024/05/18 18:18
建Maven项目的时候,如果没有进行特殊的配置,Maven会按照标准的目录结构查找和处理各种类型文件。
src/main/java和src/test/java
这两个目录中的所有*.java文件会分别在comile和test-comiple阶段被编译,编译结果分别放到了target/classes和targe/test-classes目录中,但是这两个目录中的其他文件都会被忽略掉。
src/main/resouces和src/test/resources
这两个目录中的文件也会分别被复制到target/classes和target/test-classes目录中。
target/classes
打包插件默认会把这个目录中的所有内容打入到jar包或者war包中。
pom中
<resources> <resource> <directory>src/main/java</directory> <includes> <include>**/*.properties</include> <include>**/*.xml</include> </includes> <filtering>false</filtering> </resource> <resource> <directory>src/main/resources</directory> <includes> <include>**/*.properties</include> <include>**/*.xml</include> <include>**/*.ftl</include> <include>**/*.html</include> <include>**/*.pdf</include> </includes> <filtering>false</filtering> </resource></resources>
Maven项目的标准目录结构
- src
- main
- java 源文件
- resources 资源文件
- filters 资源过滤文件
- config 配置文件
- scripts 脚本文件
- webapp web应用文件
- test
- java 测试源文件
- resources 测试资源文件
- filters 测试资源过滤文件
- it 集成测试
- assembly assembly descriptors
- site Site
- main
- target
- generated-sources
- classes
- generated-test-sources
- test-classes
- xxx.jar
- pom.xml
- LICENSE.txt
- NOTICE.txt
- README.txt
资源文件的配置
资源文件是Java代码中要使用的文件。代码在执行的时候会到指定位置去查找这些文件。前面已经说了Maven默认的处理方式,但是有时候我们需要进行自定义的配置。
有时候有些配置文件通常与.java文件一起放在src/main/java目录(如mybatis或hibernate的表映射文件)。有的时候还希望把其他目录中的资源也复制到classes目录中。这些情况下就需要在Pom.xml文件中修改配置了。
可以有两种方法:
- 一是在<build>元素下添加<resources>进行配置。
- 另一种是在<build>的<plugins>子元素中配置maven-resources-plugin等处理资源文件的插件。
配置resouces节点
<build> ....... <resources> <resource> <directory>src/main/resources</directory> <excludes> <exclude>**/*.properties</exclude> <exclude>**/*.xml</exclude> </excludes> <filtering>false</filtering> </resource> <resource> <directory>src/main/java</directory> <includes> <include>**/*.properties</include> <include>**/*.xml</include> </includes> <filtering>false</filtering> </resource> </resources> ......</build>
配置资源处理插件
<plugin> <artifactId>maven-resources-plugin</artifactId> <version>2.5</version> <executions> <execution> <id>copy-xmls</id> <phase>process-sources</phase> <goals> <goal>copy-resources</goal> </goals> <configuration> <outputDirectory>${basedir}/target/classes</outputDirectory> <resources> <resource> <directory>${basedir}/src/main/java</directory> <includes> <include>**/*.xml</include> </includes> </resource> </resources> </configuration> </execution> </executions> </plugin>
另一个插件也能完成相同的功能
<plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>build-helper-maven-plugin</artifactId> <version>1.8</version> <executions> <execution> <id>add-resource</id> <phase>generate-resources</phase> <goals> <goal>add-resource</goal> </goals> <configuration> <resources> <resource> <directory>src/main/java</directory> <includes> <include>**/*.xml</include> </includes> </resource> </resources> </configuration> </execution> </executions> </plugin>
打包时文件相关的配置
打包时target/classes目录中的资源文件会和class字节码一起被打进jar包或war包中。有时候默认的情况不能完全满足需求,如target/classes目录中的一些文件不希望打入jar包中,就需要额外配置maven-jar-plugin插件。
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> <version>2.4</version> <configuration> <excludes> <exclude>*.properties</exclude> </excludes> <archive> <manifest> <addClasspath>true</addClasspath> <mainClass>xxxxxx.ConsoleLauncher</mainClass> </manifest> </archive> </configuration> </plugin>
- maven资源文件的相关配置才会在编译后的target里面有
- maven资源文件的相关配置
- maven资源文件的相关配置
- maven资源文件的相关配置
- maven资源文件的相关配置
- maven资源文件的相关配置
- maven资源文件的相关配置
- maven资源文件的相关配置
- 资源编译相关的文件
- Maven 资源文件的配置
- Tomcat下面的配置在每次Eclipse编译后,修改好的配置会还原
- myeclipse 导入maven工程 resources 下的文件不能编译,在target下没有产生.class文件
- 在mybatis里面配置外部资源文件
- 解决项目中hbm文件用maven运行没有拷贝到target里面的问题
- 关于为何Myeclipse里面有改动但是deploy到tomcat后tomcat内的相关文件没有变动
- Android的资源文件里为什么会有三个drawable?
- win8换过桌面图标后,为什么删除的文件要刷新桌面才回收站的图标才会变更
- jacoco在pom文件里面的配置
- 给AFN加点Cookie
- Docker maven插件方式构建微服务镜像
- Java学习笔记-数组的静态初始化和动态初始化
- Beyond Compare的文档比较工具的设置
- BigDecimal 分转元
- maven资源文件的相关配置才会在编译后的target里面有
- cf 485d Maximum Value 【二分】
- UNIX环境编程学习笔记(27)——多线程编程(二):控制线程属性
- WEB篇一 初识html
- CodeForces
- C++学习笔记【第二部分第十章:泛型算法】
- UVA 11183 (最小树形图)
- Java 处理多线程
- dagger2@Scope的一点点