maven-war-plugin 插件打包时,src/main/java 目录下mybatis的映射文件如何配置

最近在为项目组开发项目时,pom 文件里的打包插件maven-war-plugin 打包后,放在Tomcat下运行后,页面执行一个查询类的操作后,后台报错,如下图:

07-Nov-2017 09:40:35.848 SEVERE [http-nio-8080-exec-3] org.apache.catalina.core.StandardWrapperValve.invoke Servlet.service() for servlet [appServlet] in context with path [/vq] threw exception [Request processing failed; nested exception is org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.exceptions.PersistenceException: 
### Error querying database.  Cause: java.lang.IllegalArgumentException: Mapped Statements collection does not contain value for com.vip.platform.vms.qa.dao.Cluster.getClusterByClusterTypeAndEnv
### Cause: java.lang.IllegalArgumentException: Mapped Statements collection does not contain value for com.vip.platform.vms.qa.dao.Cluster.getClusterByClusterTypeAndEnv] with root cause
 java.lang.IllegalArgumentException: Mapped Statements collection does not contain value for com.vip.platform.vms.qa.dao.Cluster.getClusterByClusterTypeAndEnv
	at org.apache.ibatis.session.Configuration$StrictMap.get(Configuration.java:832)
	at org.apache.ibatis.session.Configuration.getMappedStatement(Configuration.java:665)
	at org.apache.ibatis.session.Configuration.getMappedStatement(Configuration.java:658)
	at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:119)
	at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:113)


查了下,放在war里的文件,缺少mybatis的映射文件。

网上找了下,发现时打包时,/src/main/java 默认只会编译java源文件。问题找到了。接下来是怎么解决。

网上大家基本是放在 src/java/resource 目录下,直接解决问题。我不想这么做,因为需要改动spring 配置文件。

查了下官网的文档,可以pom文件里,加上这些配置

			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-war-plugin</artifactId>
				<version>3.2.0</version>
				<configuration>
					<webResources>
						<resource>
							<!-- this is relative to the pom.xml directory -->
							<directory>src/main/java</directory>
							<includes>
								<include>**/*.xml</include>								 
							</includes>
							<targetPath>WEB-INF/classes</targetPath>
						</resource>
					</webResources>
				</configuration>
			</plugin>


问题解决了

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: maven-war-plugin插件中的packagingExcludes属性用于在打war排除特定的文件目录。这可以使用ant-style的通配符进行配置。例如,如果要排除web应用程序中的所有.log文件,则可以将packagingExcludes设置为"WEB-INF/logs/*.log"。 ### 回答2: maven-war-pluginMaven的一个插件,用于打包WAR文件。packagingExcludes是maven-war-plugin的一个配置选项,用于指定哪些文件不会被打包到最终的WAR文件中。 packagingExcludes的作用是帮助开发人员过滤掉不需要打包WAR文件中的文件。通常情况下,WAR文件是用于部署到Web容器中,包含了Web应用程序的所有资源文件,包括HTML、CSS、JavaScript、图片等。但是在实际开发过程中,可能存在一些临文件配置文件、日志文件等不需要部署的文件。 通过配置packagingExcludes,开发人员可以将这些不需要打包文件排除在外,从而减小WAR文件的体积,并且减少了部署和发布的间。这对于大型Web应用来说尤为重要,因为WAR文件越大,部署和发布的间就越长。 packagingExcludes的配置方式非常简单,只需要在pom.xml文件中的maven-war-plugin插件配置中添加一个<packagingExcludes>标签,然后在标签中指定具体要排除的文件文件夹的路径即可。如果有多个文件文件夹需要排除,可以使用逗号或分号进行分隔。 总的来说,packagingExcludes是maven-war-plugin插件提供的一个配置选项,用于在打包WAR文件排除不需要部署的文件,以减小WAR文件体积、提高部署和发布的效率。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值