IDEA將Maven項目中指定文件夾下的xml等文件編譯進classes的方法
出處:https://www.cnblogs.com/SunSpring
eclipse下面創(chuàng)建的Maven項目,使用mybatis。eclipse里面能正常啟動,在idea中一直卡在maybatis 加載位置。
1、首先是不報錯也沒反應(yīng)。這個時候需要我們重寫SqlSessionFactoryBean 讓錯誤顯示出來。
public class BeanFactory extends SqlSessionFactoryBean {
@Override
protected SqlSessionFactory buildSqlSessionFactory() throws IOException {
try {
return super.buildSqlSessionFactory();
} catch (NestedIOException e) {
e.printStackTrace();
throw new NestedIOException("Failed to parse mapping resource:", e.getCause());
}
}
}
2、修改applicationContext.xml 中的mybatis配置。
<bean id="sqlSessionFactory" class="com.util.BeanFactory">
<property name="dataSource" ref="dataSource"></property>
<property name="configLocation" value="classpath:mybatis-config.xml" />
</bean>
這樣就能打印出mybatis加載過程的錯誤。
重新啟動項目調(diào)試,報錯提示找不到mybatis-config.xml 中配置的**mapper.xml文件。打開編譯的target文件找到對應(yīng)的mapper.xml目錄發(fā)現(xiàn)果然沒有xml文件,我們知道m(xù)aven項目的標(biāo)準(zhǔn)項目結(jié)構(gòu)如下:
(1)src/main/java:存放主代碼
(2)src/main/resources:存放項目的資源文件,如:Spring 的核心配置文件
(3)src/test/java:存放測試代碼
(4)src/test/resources:存放測試的資源文件
(5)target:目標(biāo)文件輸出位置,如:編譯后的 .class 文件
(6)pom.xml:Maven 項目的核心配置文件
(7)src/main/webapp :它是 Web 項目的主目錄,用于存放 .jsp、.js、.css 等文件
我們習(xí)慣把mybatis的mapper.xml文件Mapper.java放一起,都在src/main/java下面,這樣maven打包時,如果沒有設(shè)置為資源文件則maven不會打包,maven認(rèn)為src/main/java只是java的源代碼路徑。可以看到idea里面Modules,只有src/test/resources是ResourceFolders。

解決辦法:修改pom.xml,還有其他方法自己可以看下。
<build>
<resources>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.xml</include>
</includes>
<filtering>false</filtering>
</resource>
<resource>
<directory>src/main/resources</directory>
</resource>
</resources>
</build>
然后再重新編譯項目就行了。
特別提醒:idea有時候修改了pom.xml文件沒有重新加載,重新編譯項目的時候還是不行。這個時候我們要再maven那里點擊下“Reimport” 按鈕,重新加載下。
我就是這個原因搞了很久都沒找到問題。

以上就是IDEA將Maven項目中指定文件夾下的xml等文件編譯進classes的方法的詳細(xì)內(nèi)容,更多關(guān)于IDEA 將xml編譯進classes的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
EasyExcel實現(xiàn)導(dǎo)入+各種數(shù)據(jù)校驗功能
這篇文章主要介紹了EasyExcel實現(xiàn)導(dǎo)入+各種數(shù)據(jù)校驗,本文通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-05-05
java9學(xué)習(xí)系列之在docker中如何運行java9
最近在學(xué)習(xí)java9,所以將學(xué)習(xí)中遇到的一些知識點分享給大家,下面這篇文章主要給大家介紹了java9學(xué)習(xí)系列之在docker中如何運行java9的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下。2017-09-09
springboot?+rabbitmq+redis實現(xiàn)秒殺示例
本文主要介紹了springboot?+rabbitmq+redis實現(xiàn)秒殺示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-07-07
go語言題解LeetCode88合并兩個有序數(shù)組示例
這篇文章主要為大家介紹了go語言題解LeetCode88合并兩個有序數(shù)組示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-12-12
IDEA創(chuàng)建Servlet程序的兩種實現(xiàn)方法
Servlet是JavaWeb應(yīng)用程序中不可或缺的組件之一,本文主要介紹了IDEA創(chuàng)建Servlet程序的兩種實現(xiàn)方法,具有一定的參考價值,感興趣的可以了解一下2023-10-10

