完美解决maven项目配置文件不生效、更新问题

0.前言

三种需求情况[场景]以及解决办法

  • 1。不知道为什么配置文件[xml\yml\properties]不生效。[可能是java路径也可能是resource路径]
  • 2。Maven项目配置文件 不实时更新
  • 3。非resource路径下的配置文件不生效

1.把Maven打包方式换成打jar包

  pom.xml修改打包方式
  
  <groupId>com.biturd</groupId>
  <artifactId>logStudy</artifactId>
  <packaging>pom</packaging>
  <version>1.0-SNAPSHOT</version>


改为
  <groupId>com.biturd</groupId>
  <artifactId>logStudy</artifactId>
  <packaging>jar</packaging>  
  <version>1.0-SNAPSHOT</version>

[好像不加<packaging>标签默认就是jar,我手贱了mmp]

1.1. 打包方式是pom时

  <packaging>pom</packaging>

image-20200406134838487

1.2.打包方式换成jar包。

  <packaging>jar</packaging>

花了 我 一早上。。卧草。。罪魁祸首 恶心

image-20200406134526619

原因: pom打包方式时 只是在就是本地maven仓库加入这个依赖了,别的模块引用的时候没问题。jar打包是target里面啥都有,同时生成jar包,同时maven仓库生成这个依赖。

image-20200406135114060

2. maven项目build的原理及配置文件不能实时更新的问题

因为maven打包 原理是将java路径下的编译[build],将resources下直接复制过去。

所以这也会出现,你更新了配置文件而项目中没有用上的问题。[解决方法就只有重新编译了,或者你直接改target目录下的资源文件也行] [这估计是所有接触maven的小伙伴一开始都会遇到的问题 ]

3. 如何让java路径的配置文件生效 [引入除了resource目录下的其他配置文件]

image-20200406140646892

<build>
    <resources>
        <resource>
            <directory>src/main/java</directory>
            <excludes>
                <exclude>**/*.java</exclude>
                <!-- **是所有文件的意思,如果文件来自其他地方可以仿照这个配置 -->
            </excludes>
        </resource>
        <resource>
            <directory>src/main/resources</directory>
        </resource>
    </resources>
</build>

4。 idea中可能导致配置文件不生效或者target的路径变化的原因总结

  • idea会将maven pom的信息本地化为这个项目的信息保存在 .idea中。

image-20200406144726224

image-20200406145329647

这个刷新也能同步idea与maven的配置。[reimport]

如果还不能解决你的问题并且你还怀疑是这方面原因可以删除 .idea和.iml文件重新导入一下项目。

  • 输出路径

image-20200406145112702

<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p" xmlns:context="http://www.springframework.org/schema/context" xmlns:mvc="http://www.springframework.org/schema/mvc" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd"> <context:component-scan base-package="com.infosec.controller"> </context:component-scan> <mvc:annotation-driven /> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="prefix" value="/WEB-INF/jsp/" /> <property name="suffix" value=".jsp" /> </bean> <!-- 资源映射 --> <mvc:resources location="/WEB-INF/css/" mapping="/css/**" /> <mvc:resources location="/WEB-INF/js/" mapping="/js/**" /> <mvc:resources location="/WEB-INF/image/" mapping="/image/**" /> <mvc:resources location="/WEB-INF/alert/" mapping="/alert/**" /> <!-- 定义文件上传解析器 --> <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"> <!-- 设定默认编码 --> <property name="defaultEncoding" value="UTF-8"></property> <!-- 设定文件上传的最大值5MB,5*1024*1024 --> <property name="maxUploadSize" value="5242880"></property> </bean> <!--配置拦截器, 多个拦截器,顺序执行 --> <mvc:interceptors> <mvc:interceptor> <!-- 匹配的是url路径, 如果不配置或/**,将拦截所有的Controller --> <mvc:mapping path="/**" /> <mvc:exclude-mapping path="/css/**"/> <mvc:exclude-mapping path="/js/**"/> <mvc:exclude-mapping path="/image/**"/> <mvc:exclude-mapping path="/alert/**"/> <bean class="com.infosec.interceptor.CommonInterceptor"></bean> </mvc:interceptor> <!-- 当设置多个拦截器时,先按顺序调用preHandle方法,然后逆序调用每个拦截器的postHandle和afterCompletion方法 --> </mvc:interceptors> </beans> <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:context="http://www.springframework.org/schema/context" xmlns:p="http://www.springframework.org/schema/p" xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.0.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.0.xsd http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-4.0.xsd"> <!-- 事务管理器 --> <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <!-- 数据源 --> <property name="dataSource" ref="dataSource" /> </bean> <!-- 通知 --> <tx:advice id="txAdvice" transaction-manager="transactionManager"> <tx:attributes> <!-- 传播行为 --> <tx:method name="save*" propagation="REQUIRED" /> <tx:method name="insert*" propagation="REQUIRED" /> <tx:method name="add*" propagation="REQUIRED" /> <tx:method name="create*" propagation="REQUIRED" /> <tx:method name="delete*" propagation="REQUIRED" /> <tx:method name="update*" propagation="REQUIRED" /> <tx:method name="find*" propagation="SUPPORTS" read-only="true" /> <tx:method name="select*" propagation="SUPPORTS" read-only="true" /> <tx:method name="get*" propagation="SUPPORTS" read-only="true" /> </tx:attributes> </tx:advice> <!-- 切面 --> <aop:config> <aop:advisor advice-ref="txAdvice" pointcut="execution(* com.infosec.service.*.*(..))" /> </aop:config> </beans> <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:context="http://www.springframework.org/schema/context" xmlns:p="http://www.springframework.org/schema/p" xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.0.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.0.xsd http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-4.0.xsd"> <!-- 扫描包加载Service实现类 --> <context:component-scan base-package="com.infosec.service" /> </beans>
©️2020 CSDN 皮肤主题: 像素格子 设计师:CSDN官方博客 返回首页