maven打包 含src下的xml文件

最近做cxf+spring+mybatis集成的一个小例子,用maven打包后,mybatis的sql语句老是调不到。

报以下错误:

javax.xml.ws.soap.SOAPFaultException: Invalid bound statement (not found)

 

原来是项目maven打包并未把mybatis对应的Dao类.xml  copy进去,sqlSessionFactory里面并未注册实体dao里面的sql语句,所以执行出现Invalid bound statement 。

 

maven下pom.xml 默认并不打包项目src下xml,properties等配置文件的。

 

需要在  <build>元素中加以下代码

Pom打包src下文件属性配置代码   收藏代码
  1. <resources>  
  2.             <resource>  
  3.                 <directory>src/main/java</directory>  
  4.                 <includes>  
  5.                     <include>**/*.properties</include>  
  6.                     <include>**/*.xml</include>  
  7.                 </includes>  
  8.                 <!-- 是否替换资源中的属性-->  
  9.                 <filtering>false</filtering>  
  10.             </resource>  
  11.             <resource>  
  12.                 <directory>src/main/resources</directory>  
  13.                 <!--  
  14.                     <includes> <include>**/*.properties</include>  
  15.                     <include>**/*.xml</include> </includes> <filtering>true</filtering>  
  16.                 -->  
  17.             </resource>  
  18.         </resources>  

一个小问题耗了很长时间,得多多长记心了!

<think>好的,我现在需要解决用户的问题:在使用Maven打包时排除yml和xml文件的配置方法。根据用户提供的引用内容,我需要结合这些信息来给出正确的配置步骤。 首先,用户提到了两种方法:使用maven-resources-plugin和maven-assembly-plugin。引用[1]中的示例展示了如何通过maven-resources-plugin在资源目录中排除特定文件,比如排除了application-prod.yml。同时,注释中还提到了排除所有目录下的所有配置文件的例子,但被注释掉了。这里可能需要调整exclude模式来匹配.yml和.xml文件。 接下来,用户提供的第二个引用[2]涉及Maven多环境配置,这可能与资源过滤或不同环境的配置分离有关,但用户当前的问题主要是排除特定类型的文件,而不是多环境配置。所以可能需要专注于第一个引用中的方法。 我应该首先考虑使用maven-resources-plugin,因为在资源处理阶段排除文件是比较直接的方法。用户需要排除所有yml和xml文件,所以exclude模式应该是**/*.yml和**/*.xml。需要确认这些模式是否在excludes标签内正确配置。 另外,用户可能希望不仅排除某个特定文件,而是所有符合条件的文件。所以需要调整引用[1]中的示例,将exclude标签的内容改为匹配.yml和xml的通配符模式。 然后,检查是否有其他插件可能影响资源排除,例如maven-assembly-plugin,但根据引用[1]中的方法2,可能也需要配置该插件。不过,如果用户只是使用默认的打包方式(如jar),可能只需要配置maven-resources-plugin即可。 需要注意,在Maven的构建过程中,资源处理通常由maven-resources-plugin负责,因此正确配置该插件的excludes参数是关键。同时,要确保配置放在pom.xml的build/resources部分,这样在打包时才会生效。 最后,应该提醒用户测试配置是否有效,可能通过检查生成的jar包中是否还包被排除的文件,或者使用mvn命令查看构建日志确认排除操作是否执行。</think>在使用Maven打包时排除特定类型文件(如YML和XML),可以通过以下两种方法实现: ### 方法1:通过maven-resources-plugin配置 在`pom.xml`的`<build>`标签内添加资源过滤规则: ```xml <build> <resources> <resource> <directory>src/main/resources</directory> <excludes> <!-- 排除所有.yml和.xml文件 --> <exclude>**/*.yml</exclude> <exclude>**/*.xml</exclude> </excludes> </resource> </resources> </build> ``` 该配置会在资源复制阶段跳过指定文件类型[^1]。 ### 方法2:通过maven-assembly-plugin(适用于定制化打包) 在插件配置中设置排除规则: ```xml <plugin> <artifactId>maven-assembly-plugin</artifactId> <configuration> <excludes> <exclude>**/*.yml</exclude> <exclude>**/*.xml</exclude> </excludes> </configuration> </plugin> ``` 此方法适用于需要创建特定分发包时使用[^1]。 ### 验证方法 执行打包命令后检查生成的文件: ```bash mvn clean package # 解压jar包查看内容 jar tf target/your-project.jar | grep -E '\.yml|\.xml' ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值