maven资源文件的相关配置

来源:互联网 发布:淘宝好评80字以上 编辑:程序博客网 时间:2024/05/29 07:37

前言

构建Maven项目的时候,如果没有进行特殊的配置,Maven会按照标准的目录结构查找和处理各种类型文件。

src/main/javasrc/test/java
这两个目录的所有*.java文件会分别在compile和test-compile阶段被编译,编译结果分别放到target/classes和targe/test-classes目录中,但是这两个目录中的其他文件会被忽略掉。

src/main/resourcessrc/test/resources
这两个目录中的文件也会分别被复制到target/classess和target/test-classes目录中。

target/classes
打包插入默认会把这个目录中的所有内容打入到jar包或者war包中。

Maven项目的标准目录结构

  • src
    • main
      • java 源文件
      • resources 资源文件
      • filter 资源过滤文件
      • config 配置文件
      • scripts 脚本文件
      • webapp web应用文件
    • test
      • java 测试源文件
      • resources 测试资源文件
      • filters 测试资源过虑文件
    • it 集成测试
    • assembly assembly descriptors
    • site Site
  • 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等处理资源文件的插件。

配置resources节点

<build>    ......    <resources>        <resource>            <directory>src/main/resources</directory>            <excludes>                <exclude>**/*.properties></exclude>                <exclude>**/*.xml</exclude>            </excludes>            <filtering>flase</filtering>        </resource>        <resource>            <directory>src/main/java</direcotry>            <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>                        <inclues>                            <include>**/*.xml</include>                        <includes>                    <resource>                <resources>            </configuration>        </execution>    </executions></plugin>

另一上插件也能完成相同的功能

<plugin>    <groupId>org.codehaus.moji</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>                        <dirctory>src/main/java</dirctory>                        <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>    <articleId>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资源文件的相关配置 http://www.cnblogs.com/pixy/p/4798089.html

0 0
原创粉丝点击