Gradle或Maven打包專案資原始檔問題
出現這個問題一不小心容易弄得人,心力交瘁,當我們用Gradle或者Maven構建web專案的時候,少不了要打包*.xml或者*.properties檔案,但是預設的情況下,gradle和maven總會很智慧的不去載入這麼些資源,於是乎當你採用如下形式放置檔案打包並執行web專案的時候
會出現如下的錯誤,mapper檔案繫結失敗
org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.demo.mapper.UserMapper.insert at org.apache.ibatis.binding.MapperMethod$SqlCommand.<init>(MapperMethod.java:196) at org.apache.ibatis.binding.MapperMethod.<init>(MapperMethod.java:44) at org.apache.ibatis.binding.MapperProxy.cachedMapperMethod(MapperProxy.java:59) at org.apache.ibatis.binding.MapperProxy.invoke(MapperProxy.java:52) at com.sun.proxy.$Proxy18.insert(Unknown Source) at com.demo.service.impl.UserServiceImpl.insertUser(UserServiceImpl.java:72) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:317) at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:190) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:157) at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:99)
這時候你也許會像我一樣,對自己的mapper.xml檔案找了又找卻還是找不到絲毫的錯誤,其實上面錯誤的意思是,java檔案和mapper.xml檔案繫結失敗,不出意料的話,在你build目錄下打包生成的war包或者打包檔案一定是少了這個mapper.xml檔案,下面給出Gradle和Maven構建工程打包資原始檔的方法
一、Gradle構建工程
將如下語句加入到build.gradle檔案當中
#from資料夾目錄下的所有xml檔案打包進工程
processResources {
from('src/main/java') {
include '**/*.xml'
}
}
這個語句是萬能的,少了什麼加什麼
二、Maven構建工程
把如下內容加入到pom.xml檔案中的build標籤內
<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> </includes> <filtering>true</filtering> --> </resource> </resources>
以上兩種酒可以解決少資原始檔的問題了,同樣的還有第三種在xml種配置指定資源路徑目錄的方式,下次碰到在補上!下面補上java檔案和xml檔案分開放置的指定路徑的配置方式。
三、到xml檔案中指定路徑
1)使用spring的情況下,首先看圖
先把檔案按照如下的位置放置,然後在spring配置檔案中加入如下程式碼
<!-- 讓spring管理sqlsessionfactory 使用mybatis和spring整合包中的 -->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<!-- 資料庫連線池 -->
<property name="dataSource" ref="dataSource" />
<!-- 載入mybatis的全域性配置檔案 -->
<property name="configLocation" value="classpath:mybatis/SqlMapConfig.xml" />
<!--配置包的掃描路徑-->
<property name="mapperLocations" value="classpath:com/demo/mapper/*.xml"/>
</bean>
2)不使用spring的情況下
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:mybatis="http://mybatis.org/schema/mybatis-spring"
xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://mybatis.org/schema/mybatis-spring http://mybatis.org/schema/mybatis-spring.xsd">
<!-- 配置介面儲存的包,用來掃描mapper介面 -->
<mybatis:scan base-package="edu.zju.bme.data.manage.mapper" />
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<!-- 配置mapper檔案位置,掃描對映檔案,可以使用Ant風格的路徑格式 -->
<property name="mapperLocations" value="classpath*:mappers/**/*.xml" />
// ...
</bean>
</beans>
相關推薦
Gradle或Maven打包專案資原始檔問題
出現這個問題一不小心容易弄得人,心力交瘁,當我們用Gradle或者Maven構建web專案的時候,少不了要打包*.xml或者*.properties檔案,但是預設的情況下,gradle和maven總會很智慧的不去載入這麼些資源,於是乎當你採用如下形式放置檔案打包並執行web專
Gradle實現多渠道打包(不同資原始檔打不同的包)
在日常開發中,我們或多或少都會碰到多渠道打包的一些問題,有些是同一個版本要上傳到不同的平臺,有些是要提供給不同的代理商,中間可能需要改動裡面的圖片或其他的一些資原始檔,對於版本比較少的我們可以簡單的替換,但是遇到很多版本時,相信再通過手動替換會令人吐血~ 廢話
Java之——qqwry.dat輸出亂碼問題及maven打包後資原始檔大小不一致的問題
使用qqwry.dat進行IP地理位置查詢時,遇到一個問題即在本地測試時查詢純真庫時正常,沒有任何問題,但是打包傳到伺服器上便出現了亂碼問題。1.首先排除伺服器的字符集編碼的影響使用如下命令驗證了本地和
將github的library專案新增到jitpack的gradle或maven倉庫
前言 本文主要講解怎麼將GitHub上的Library上傳到jitpack的倉庫,然後通過maven或gradle依賴到其他專案中的過程. 效果 先看完成後的結果 gradle依賴 1.專案的build.gradle allprojects { repositories {
Maven 打包專案時出現的錯誤
打包時,沒有install 依賴專案 使用maven管理的spring boot 專案,專案A 依賴專案B,在打包專案A的時候,出現下面的錯誤 報錯: Failed to execute goal on project hong-bao: Could not resolve
15 友盟專案--資原始檔工具類(ResourceUtil)、sql執行工具類(ExecSQLUtil)
資原始檔工具類把sql指令碼轉換為String字串--->交給sql工具類ExecSQLUtil執行sql 1.資原始檔工具類(ResourceUtil) 把sql指令碼轉換為String字串 /** * 資原始檔工具類 */ public class Resourc
利用webpack打包其它資原始檔
文章目錄 打包sass檔案 專案結構 修改原始碼 執行結果 打包less檔案 修改原始碼 執行結果 打包url中的資源 修改原始碼 執行結果
前端專案資原始檔使用cdn加速
背景: 前端專案程式碼在上傳到伺服器以後 資原始檔往往會很大 而使用的雲服務一般頻寬都會很小(頻寬很貴) 所以資源往往需要放到cdn上面來加速 節約伺服器的頻寬 這裡我們使用回源的方式來實現cdn加速 假設: oss(或其他雲)的Bucket域名為https://st
maven打包專案的時候找不到jar包,但是專案裡面改已經有相關jar包
maven的setting.xm需要配置jdk 全域性 <profiles> <id>jdk-1.8</id> <activation>
Intellij IDEA使用MAVEN打包丟失程式碼原始檔夾下配置檔案
最近用Maven建立了一個Spring Web專案,在跟Mybatis整合時,tomcat控制檯老是報錯(找不到Mapper對應的XML配置檔案),無意中發現編譯後的classes資料夾(或者war包)對應的目錄根本沒有相應的xml配置檔案。解決方式是,在
Android studio專案資原始檔分包
有很多人說專案要模組化,當需要這個模組直接拿出來用就行,之前只知道對activity進行分包儲存,卻一直未對資原始檔分包,導致一個模組想拿出來用他太麻煩了,找了很多資料,最終還是找到了,感覺很贊!這裡
Maven 打包專案 部署到伺服器 重啟服務 外掛
1、maven外掛wagon-maven-plugin自動部署遠端Linux伺服器 (http://xxgblog.com/2015/10/23/wagon-maven-plugin/) <plugin> <grou
Maven_Eclipse_Eclipse下使用maven 打包專案
構建一個Maven專案後, 我們可以在命令列中 使用 mvn package 將專案輸出為 jar 檔案,但是一般我們都是使用 IDE 進行專案開發的。 如何在IDE Eclipse 中完成這個過程呢
關於使用maven打包專案(簡述)
首先 我們需要去安裝maven , 這裡給出一個下載 地址:http://maven.apache.org/index.html 下載解壓後,進行環境變數的配置 新增新的系統環境變數MAVEN_HOME, 並設定其值為你安裝的目錄 MAVEN_HOME= D:
IDEA maven打包專案到阿里雲伺服器Tomcat部署流程
1.購買阿里雲伺服器和使用(簡略) 有意購買伺服器的朋友可以領取優惠券再購買哦,最高1000元優惠呢,優惠券地址: 本人選擇的是輕量級應用伺服器,如果你喜歡也可以選擇另一個,環境選擇系統映象--Windows Server 2012...--華南 當然,系統
maven打包專案時候報錯 java:1:非法字元: \65279
[ERROR] [解析開始時間D:\workspace\src\main\java\com\service\ProcessCenterUpdateServiceImpl.java] [ERROR]D:\workspace\\src\main\java\com\\servic
maven編譯後資原始檔損壞
第一種方式 maven打包時,過濾不編譯檔案型別 <plugin> <groupId>org.ap
使用 Maven 外掛將 class(位元組碼檔案),resource(資原始檔),lib(依賴的jar包)分開打包
1. 在pom檔案中對各個外掛進行配置 <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/20
build.gradle的高階運用,通過Groovy語言合理的編譯打包程式碼,避免資原始檔冗餘
懶人Android開發。最近做專案,一個專案(一套程式碼)針對多個客戶,要出多個版本,但不同的客戶需求導致專案程式碼有細微的不同,以及應用載入的資源圖片都是不一樣,如果僅僅是程式碼細微差別還好,但是資源圖片載入的都不一樣,這導致apk大包資源圖片冗餘大,這並不是我們所希望
利用MAVEN打包時,如何包含更多的資原始檔
首先,來看下MAVENx專案標準的目錄結構: 一般情況下,我們用到的資原始檔(各種xml,properites,xsd檔案等)都放在src/main/resources下面,利用maven打包時,maven能把這些資原始檔打包到相應的jar或者war裡。 有