【转载】利用MAVEN打包时,如何包含更多的资源文件

首先,来看下MAVENx项目标准的目录结构:

一般情况下,我们用到的资源文件(各种xml,properites,xsd文件等)都放在src/main/resources下面,利用maven打包时,maven能把这些资源文件打包到相应的jar或者war里。

有时候,比如mybatis的mapper.xml文件,我们习惯把它和Mapper.java放一起,都在src/main/java下面,这样利用maven打包时,就需要修改pom.xml文件,来把mapper.xml文件一起打包进jar或者war里了,否则,这些文件不会被打包的。(maven认为src/main/java只是java的源代码路径)。网络上有很多方法,我大概试了下,几种方法都可以,可以任选一种即可。

方法1,其中**/*这样的写法,是为了保证各级子目录下的资源文件被打包。

<build>
    <finalName>test</finalName>
    <!--
    这样也可以把所有的xml文件,打包到相应位置。
    <resources>
        <resource>
            <directory>src/main/resources</directory>
            <includes>
                <include>**/*.properties</include>
                <include>**/*.xml</include>
                <include>**/*.tld</include>
            </includes>
            <filtering>false</filtering>
        </resource>
        <resource>
            <directory>src/main/java</directory>
            <includes>
                <include>**/*.properties</include>
                <include>**/*.xml</include>
                <include>**/*.tld</include>
            </includes>
            <filtering>false</filtering>
        </resource>
    </resources>
</build>

 

方法2,利用build-helper-maven-plugin插件

<build>
    ...
    </plugins>
        ...
        <!--
        此plugin可以用
        利用此plugin,把源代码中的xml文件,
        打包到相应位置,这里主要是为了打包Mybatis的mapper.xml文件
        -->
        <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>
        ...
    </plugins>
    ...
</build>

方法3,利用maven-resources-plugin插件

<build>
    ...
    </plugins>
        ...
        <!--
        此plugin可以用
        利用此plugin,把源代码中的xml文件,打包到相应位置,
        这里主要是为了打包Mybatis的mapper.xml文件
        -->
        <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>
        ...
    </plugins>
    ...
</build>
时间: 2024-10-13 14:49:27

【转载】利用MAVEN打包时,如何包含更多的资源文件的相关文章

利用Maven打包时,如何包含更多的资源文件

首先,来看下MAVENx项目标准的目录结构: 一般情况下,我们用到的资源文件(各种xml,properites,xsd文件等)都放在src/main/resources下面,利用maven打包时,maven能把这些资源文件打包到相应的jar或者war里. 有时候,比如mybatis的mapper.xml文件,我们习惯把它和Mapper.java放一起,都在src/main/java下面,这样利用maven打包时,就需要修改pom.xml文件,来把mapper.xml文件一起打包进jar或者war

maven 打包时mapper.xml打不进去问题

首先,来看下MAVENx项目标准的目录结构: 一般情况下,我们用到的资源文件(各种xml,properites,xsd文件等)都放在src/main/resources下面,利用maven打包时,maven能把这些资源文件打包到相应的jar或者war里. 有时候,比如mybatis的mapper.xml文件,我们习惯把它和Mapper.java放一起,都在src/main/java下面,这样利用maven打包时,就需要修改pom.xml文件,来把mapper.xml文件一起打包进jar或者war

maven配置tomcat插件,及在maven打包时文件名不包含版本号

maven配置tomcat插件,及在maven打包时文件名不包含版本号 <build> <!-- 指定文件名,在打包时文件名不包含版本号 --> <finalName>${project.artifactId}</finalName> <plugins> <!-- 资源文件拷贝插件 --> <plugin> <groupId>org.apache.maven.plugins</groupId> &l

转发:maven打包时始终出现以下提示:-source 1.3 中不支持泛型(请使用 -source 5 或更高版本以启用泛型)

maven打包时始终出现以下提示: 1.-source 1.3 中不支持泛型(请使用 -source 5 或更高版本以启用泛型)List<User> userList= new ArrayList<User>(); 2.-source 1.3 中不支持注释(请使用 -source 5 或更高版本以启用注释)@WebService(endpointInterface = "com.webservice.service.LoadService") 而用命令mvn -

将本地jar包手动拷贝到Maven库中,在其他电脑上用Maven打包时出错

背景交代:在做图片水印时候引入了两个包文件,这两个包是JDK自带的私有包,不能用Maven库里下载,因此笔者手动将rt和jce两个工具jar文件拷贝到本地的Maven库中,如下图 import com.sun.image.codec.jpeg.JPEGCodec; import com.sun.image.codec.jpeg.JPEGImageEncoder; 然后在pom配置文件里写上下面的配置 将jce和rt拷到如下路径(rt类似) 然后项目在其他电脑上用Maven打包时候报错如下: Fa

MAVEN 打包时出现多余的类的问题

问题描述:使用 mvn clean install 的时候,会打的包中增加一些源码中没有的class.<IGNORE_JS_OP> mvn1.jpg (56.52 KB, 下载次数: 31) 下载附件  保存到相册 2014-6-27 16:28 上传 像这个jar包多了java.annotation的类. 不知道这些类怎么编译过来的,编译时在classes目录就有这些文件. 解决办法: 在pom文件中加入: <build>                <plugins&g

Maven打包时:com.sun.image.codec.jpeg不存在的解决方案

报这个错误的原因是,Maven没有权限操作jre自带的jar包. 解决方法:在pom.xml添加以下依赖: <span style="font-size:18px;"><dependency> <groupId>jce</groupId> <artifactId>jce</artifactId> <version>1.0</version> </dependency> <d

idea中 maven打包时时报错User setting file does not exist C:\Users\lenevo\.m2\setting.xml,

idea中 maven打包时时报错User setting file does not exist C:\Users\lenevo\.m2\setting.xml, 解决方案如下:将maven的安装目录\conf目录下的setting.xml拷贝到C:\Users\lenevo\.m2目录下即可.   原文地址:https://www.cnblogs.com/zhulina-917/p/9986926.html

8、Maven打包时resources文件夹下的资源文件没有打进去的解决措施

场景:使用maven install进行打包时,发现resources文件夹下的资源文件没有打进去,war中展示的还是修改前的原文件,解决措施如下: 1.在pom.xml文件中,在<build>打包标签中增加resources标签配置,指定maven将resources资源文件进行打包: 原文地址:https://www.cnblogs.com/wf2010517141/p/10451182.html