精华内容
下载资源
问答
  • WAR包配置文件分离

    千次阅读 2017-12-07 15:39:28
    QQ技术交流群:129518033   Java开发中经常打WAR的人会遇到一个问题,每次都得...下面介绍一下如何将配置文件分离出来,这样每次打WAR包的时候就可以直接将WAR部署就好了,一般不需要关心配置文件的问题。   ...

    如需转载请标明出处:http://blog.csdn.net/itas109 

    QQ技术交流群:129518033

     

    Java开发中经常打WAR的人会遇到一个问题,每次都得根据部署电脑的IP、路径等信息修改工程中的配置文件。

    但是每次都这样还是非常烦人的。

    下面介绍一下如何将配置文件分离出来,这样每次打WAR包的时候就可以直接将WAR部署就好了,一般不需要关心配置文件的问题。

     

     

    1.数据库配置文件的分离

    jdbc.properties是数据库的配置文件,其目录为config下。

     

    1.1 设置配置文件目录

    找到WebRoot下WEB-INF下的web.xml文件,加入如下内容

     

    <!-- 用于配置文件分离 -->
      <context-param>    
      <param-name>customConfigDir</param-name>  
      <param-value>c:\webConfig</param-value>  
      </context-param>

     

     

         这样就可以设置配置文件的主目录

     

     

    1.2 spring-beans.xml中配置jdbc.properties路径

    找到propertyConfigurer标签下,修改value

    <beans:bean id="propertyConfigurer"
    		class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
    		<beans:property name="locations">
    			<beans:list>
    				<!-- <beans:value>classpath:jdbc.properties</beans:value> -->
    				<beans:value>file:/${customConfigDir}/${projectName}/jdbc.properties</beans:value>
    			</beans:list>
    		</beans:property>
    	</beans:bean>

     

    其中${projectName}为工程名称的配置,位于web.xml。

    该参数主要用于区分不同工程的配置文件。

    前面加的file:/,不然路径不正确。

     

    2.其他配置文件的分离

    我们这里还用到一个其他的配置文件config.xml。

    <?xml version="1.0" encoding="UTF-8"?>
    	<!-- 图片地址 -->
    	<image-copy-path>D:\ftp\suppliesTypePic</image-copy-path>
    </config>

    例如,我们这里配置了一个图片的地址。

    config.xml在java代码中需要调用。

    String configPath = event.getServletContext().getInitParameter("customConfigDir")
            		+"\\"
            		+event.getServletContext().getInitParameter("projectName")
                    + "\\config.xml";
            XMLUtil.parserXml(configPath);


    主要是通过getServletContext来调用xml中的参数

     

    至此,我们就可以将配置文件与WAR分离出来,极大的方便了部署工作。

     

    觉得文章对你有帮助,可以扫描二维码捐赠给博主,谢谢!


     如需转载请标明出处:http://blog.csdn.net/itas109 

     

     

    QQ技术交流群:12951803

     

     

     

    展开全文
  • WAR包配置文件分离(二)

    千次阅读 2019-01-24 16:13:17
    Java开发中经常打WAR的人会遇到一个问题,每次都得根据部署电脑的IP、路径等信息修改工程中...下面介绍一下如何将配置文件分离出来,这样每次打WAR包的时候就可以直接将WAR部署就好了,一般不需要关心配置文件的问题。

    WAR包与配置文件分离(二)


    如需转载请标明出处:http://blog.csdn.net/itas109
    QQ技术交流群:129518033


    环境:
    SpringMVC
    Maven:3.3.9

    相关阅读:
    WAR包与配置文件分离


    前言

    Java开发中经常打WAR的人会遇到一个问题,每次都得根据部署电脑的IP、路径等信息修改工程中的配置文件。但是每次都这样还是非常烦人的。

    下面介绍一下如何将配置文件分离出来,这样每次打WAR包的时候就可以直接将WAR部署就好了,一般不需要关心配置文件的问题。

    1.配置pom.xml基础路径

    由于我们使用maven,所以这里以pom.xml为根目录进行配置,其他配置采用pom.xml中的参数。

    <project xmlns="http://maven.apache.org/POM/4.0.0"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    ...                 
        <!--  自定义属性 -->
        <properties>
            <!--  配置文件输出路径 -->
            <customConfigDir>c:\\webConfig</customConfigDir>
        </properties>
        ...
     </project>
    

    2.设置pom.xml参数其他配置文件可用

    filtering标签可以设置pom.xml参数其他配置文件可用
    

    这里以resources为例,设置*.xml和*.properties可以使用pom.xml参数

        <build>
            <!-- 项目资源清单(可以配置多个项目资源) -->
            <resources>
                <resource>
                    <!-- 资源目录(编译时会将指定资源目录中的内容复制到输出目录) -->
                    <directory>src/main/resources</directory>
                    <includes>
                        <include>**/*.properties</include>
                        <include>**/*.xml</include>
                    </includes>
                    <!-- 是否开启资源过滤(需要引入maven-resources-plugin插件)
                    |   true:将用过滤资源(filters标签)中的内容 替换 资源中相应的占位符(${Xxxx})内容
                    |   false:不做过滤替换操作 -->
                    <filtering>true</filtering>
                </resource>
                ...
    </build>
    

    3.其他配置文件使用pom.xml的变量

    这里以src\main\resources\spring-config.xml文件为例

       <!--属性配置文件引入 -->
        <context:property-placeholder location="file:/${customConfigDir}/${project.artifactId}/config/jdbc.properties"/>
        <!--引入其他文件 -->
        <import resource="file:/${customConfigDir}/${project.artifactId}/config/spring-mybatis.xml"/>
    

    4.指定配置文件的输出

    上面我们在spring-config.xml中配置了相应的路径,但是工程并没有生成对应路径的文件

    targetPath标签可以指定输出目录
    
    <build>
            <!-- 项目资源清单(可以配置多个项目资源) -->
            <resources>  
                <resource>
                    <!-- 资源目录(编译时会将指定资源目录中的内容复制到输出目录) -->
                    <directory>src/main/resources</directory>
                    <includes>
                        <include>**/jdbc.properties</include>
                        <include>**/spring-mybatis.xml</include>
                        <include>**/spring-quartz.xml</include>
                        <include>**/spring-shiro.xml</include>
                        <include>**/*.lic</include>
                    </includes>
                    <!-- 输出目录(默认为${build.outputDirectory},即target/classes) -->
                    <targetPath>${customConfigDir}\${project.artifactId}\config\</targetPath>
                    <!-- 是否开启资源过滤(需要引入maven-resources-plugin插件)
                    |   true:将用过滤资源(filters标签)中的内容 替换 资源中相应的占位符(${Xxxx})内容
                    |   false:不做过滤替换操作 -->
                    <filtering>true</filtering>
                </resource>
            </resources>
            ...
    </build>
    

    Reference:
    NULL
    觉得文章对你有帮助,可以扫描二维码捐赠给博主,谢谢!
    在这里插入图片描述
    如需转载请标明出处:http://blog.csdn.net/itas109
    QQ技术交流群:129518033

    展开全文
  • 使用Maven插件将依赖包 jar包 war包配置文件输出到指定目录

    写在前面

    ​ 最近遇到一个朋友遇到一个项目需要将 maven 的依赖包和配置文件分开打包然后用脚本执行程序。这样的好处在于可以随时修改配置文件内容及查看 jar 包。如果将所有打成一个 jar 包就会有个问题(例如:修改数据库连接位置需要重新打包这样就失去了使用配置文件的有优点)。

    本文利用Maven插件将依赖包、jar/war包及配置文件输出到指定目录

    1. 使用 maven-dependency-plugin 插件将依赖包导出到指定文件夹

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-dependency-plugin</artifactId>
                <executions>
                    <execution>
                        <id>copy-dependencies</id>
                        <phase>package</phase>
                        <goals>
                            <goal>copy-dependencies</goal>
                        </goals>
                        <configuration>
                            <!--${project.build.directory} class的输出目录不做设置的话默认代表项目根目录的target目录;
                                也可以使用“自定义文件夹/自定义文件夹 例如:a/b”,也可以使用绝对路径如:“D:\test” -->
                            <outputDirectory>${project.build.directory}/lib</outputDirectory>
                            <excludeTransitive>false</excludeTransitive>
                            <stripVersion>false</stripVersion>
                            <includeScope>runtime</includeScope>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>

    以下步骤将会省略掉build plugins节点

    2. 使用 maven-war-plugin 插件将war打包到指定路径

    打Jar包时,与此类似

    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-war-plugin</artifactId>
        <configuration>
            <outputDirectory>d:\test</outputDirectory>
            <!--表示将所有的webapps项目下的文件拷贝到相应路径-->
            <webappDirectory>d:\test</webappDirectory>
        </configuration>
    </plugin>

    3. 使用 maven-jar-plugin 插件移除配置文件将其不打包进 jar 包中,并可以将打包后的 jar 包输出到指定路径

    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-jar-plugin</artifactId>
        <configuration>
          <!-- 指定打包的jar包输出路径-->
            <outputDirectory>
                ${project.build.directory}/lib
            </outputDirectory>   
            <!--不打入jar包的文件类型或者路径-->
            <excludes>
                <exclude>**/*.properties</exclude>
                <exclude>**/*.xml</exclude>
                <exclude>**/*.yml</exclude>
                <exclude>static/**</exclude>
                <exclude>templates/**</exclude>
            </excludes>
        </configuration>
    </plugin>

    4. 使用 maven-resources-plugin 插件将需要复制的文件复制到指定路径(例:将配置文件提取到指定路径)

    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-resources-plugin</artifactId>
        <executions>
            <execution>
                <id>copy-resources</id>
                <phase>package</phase>
                <goals>
                    <goal>copy-resources</goal>
                </goals>
                <configuration>
                    <encoding>UTF-8</encoding>
                    <!--打成jar包后复制到的路径-->
                    <outputDirectory>
                        ${project.build.directory}/conf
                    </outputDirectory>  
                    <resources>
                        <resource>
                            <!--项目中的路径-->
                            <directory>src/main/resources/</directory>
                        </resource>
                    </resources>
                </configuration>
            </execution>
            <!--可配置多个提取复制路径只需要 “<id>”名字不一样即可-->
            <execution>
                <id>copy-bulid</id>
                <phase>package</phase>
                <goals>
                    <goal>copy-resources</goal>
                </goals>
                <configuration>
                    <encoding>UTF-8</encoding>
                    <outputDirectory>
                        ${project.build.directory}/bin
                    </outputDirectory>   
                    <resources>
                        <resource>
                            <directory>build/</directory>
                        </resource>
                    </resources>
                </configuration>
            </execution>
        </executions>
    </plugin>

    使用 maven 命令执行打包命令

    mvn clean package
    展开全文
  • Tomcat读取war包配置文件

    千次阅读 2019-03-26 22:19:32
    项目部署时,因为开发环境、测试环境、生产环境的配置各不相同,所以不能使用同一套配置文件,因此需要在部署服务时将配置文件放置到一个单独的文件夹中,这样就需要在Tomcat中进行配置 以windows系统启动tomcat为...

    项目部署时,因为开发环境、测试环境、生产环境的配置各不相同,所以不能使用同一套配置文件,因此需要在部署服务时将配置文件放置到一个单独的文件夹中,这样就需要在Tomcat中进行配置

    以windows系统启动tomcat为例:

    1、修改bin/catalina.bat(linux系统需要修改catalina.sh,修改方式不大一样)

    将下方语句:

    rem Ensure that any user defined CLASSPATH variables are not used on startup,
    rem but allow them to be specified in setenv.bat, in rare case when it is needed.
    set CLASSPATH=

    修改为:

    rem Ensure that any user defined CLASSPATH variables are not used on startup,
    rem but allow them to be specified in setenv.bat, in rare case when it is needed.
    set CLASSPATH=%CLASSPATH%;C:\javaSoftware\Tomcat-7.0.11\etcconfig;

    C:\javaSoftware\Tomcat-7.0.11\etcconfig为外部配置文件存放位置

    该方法在我的7.0.11版本不生效

    2、修改conf/catalina.properties

    common.loader=${catalina.base}/lib,${catalina.base}/lib/*.jar,${catalina.home}/lib,${catalina.home}/lib/*.jar

    修改为

    common.loader=${catalina.base}/lib,${catalina.base}/lib/*.jar,${catalina.home}/lib,${catalina.home}/lib/*.jar,C:/javaSoftware/Tomcat-7.0.11/etcconfig

    本tomcat修改后重启生效

     

    参考文档:

    https://blog.csdn.net/wsh_0703/article/details/80348026

    展开全文
  • 我的项目使用场景起因是: 在同一台机器上起了两个tomcat实例, 每个项目的日志文件打印路径要配成不同, 如果每次打包手动修改打印日志的路径太费时费力, 所以考虑把配置文件每个tomcat放一份, 启动时自动读取当前...
  • maven 打包war包时忽略一些配置文件

    千次阅读 2018-04-13 16:42:20
    使用过tomcat的童鞋应该都知道,tomcat是支持加载外部配置文件的,所以我们生成war包时不应该将配置文件也打包到war中,那么我们该怎么排除掉配置文件呢? 我就直接发一个pom.xml中的一个配置然后边看边说 关键是...
  • 这样的好处在于可以随时修改配置文件内容及查看jar。如果将所有打成一个jar就会有个问题(例如:修改数据库连接位置需要重新打包这样就失去了使用配置文件的有优点) 1. 使用maven-dependency-plugin 插件将...
  • 一: 修改springboot启动类代码,...System.out.println("配置文件路径地址:"+configDir); Properties properties = new Properties(); try { properties.load(new FileInputStream(new File(configDir + "\\applica
  • 应用部署war包配置文件分离 部署主机路径规划以及tomcat中间件改造 1、新建存放war包路径/appsystems/apps 将war包放置其中 2、新建存放配置文件路径/appsystems/config 将应用程序的配置文件放置其中; 3、...
  • 用Spring开发Web项目的时候,有些情况下,需要在不解开war包的情况下修改配置在不同环境读取不同的配置文件,例如:开发环境:web-dev-config.properties,测试环境:web-test-config.properties,生产环境:web-...
  • 前言 &amp;amp;背景介绍 在某个java-web项目中,需要根据maven的profile的配置进行properties文件...profiles下面有三个环境,分别是dev,test,product,而conf的配置文件都是跟随开发人员选择的环境【dev,te...
  • 项目配置可视化可维护,web项目的配置文件需要动态变更,不能直接写死在war中,就需要我们实现war包可以读取外部的配置文件
  • 记tomcat部署war包配置war包放入Tomcat中 将war包放到Tomcat目录下的webapps文件夹中;(大多数人的选择)如果放在此文件内,可能会导致项目路径出现问题。可以在Tomcat目录下自定义一个文件夹 这里是自定义...
  • 此篇文章的真正目的应该是关于war包运行在独立tomcat下时,应如何在war包外部配置application.properties,以达到每次更新war包而不用更新配置文件的目的。 百度搜素SpringBoot配置文件,基本上会得到如下信息: ...
  • 实现一个war包通过脚本配合满足不同环境部署(避免由于配置文件不一,出多个版本war包) 问题: springboot框架,但打成war包部署情况下(历史问题),由于每个环境配置文件参数不同,需编译打包各环境多个war包,...
  • spring访问war包外的配置文件

    千次阅读 2015-03-03 15:26:08
    因为生产和开发测试的环境不同,所以有时候需要把properties文件放在外方便修改配置。 这里用的是spring的PropertyPlaceholderConfigurer来读取properties属性。 file:${user.dir}/config/...
  • 最近在做一个SpirngBoot的项目,要求服务器部署的视乎使用tomcat启动war包的时候需要导入一个指定位置的application.properties文件。在网上查找了相关的问题之后,发现大部分都是基于jar包的,同样的方法war包下并...
  • war包项目在tomcat中部署,使jdbc配置文件分离出来支持动态修改一、tomcat根目录下新建配置文件二、修改spring配置文件 一、tomcat根目录下新建配置文件 二、修改spring配置文件 一、在tomcat根目录下创建jdbc_conf...
  • 首先说一下配置文件加载优先级 从上到下优先加载顺序 外部文件中 jar同级的config目录下的.properties或.yml jar同级的.properties或.yml jar包中,就将这两个 classpath的config目录下的.prop...
  • war 配置文件分离

    千次阅读 2016-06-23 09:38:06
    最近项目采用SCM统一管理的方式,通过hudson自由打包给测试和IDC运维人员,但是存在一个问题,就是我们的配置文件一直是存在于classpath下面的,而当程序包(hudson通过Maven自动打出war包)打给测试和IDC人员后,...
  • OK,现在终于打包目的了,springboot项目,使用war包启动,并且将项目的配置文件可以放到统一路径进行管理。   参考文献: http://blog.csdn.net/u010317202/article/details/50379057 ...
  • 项目需求在项目部署前更新war包中的配置文件 采用jar命令 u更新压缩包中某个文件 f制定操作的压缩包 jar uvf test.war /WEB-INF/conf/context.xml 注意后边目录文件,需要在当前文件夹建立对应的目录 jar uvf ...
  • 为了使项目配置不受生产、测试、开发环境的影响,且更加可视化可维护配置文件,web项目的配置文件需要根据不同环境配置动态变更,不能直接写死在war中,就需要我们实现war包可以读取外部的配置文件。 二、准备 ...
  • 1: 使用pom文件配置 springBoot启动类要改动一下 package com.example.demo; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 78,266
精华内容 31,306
关键字:

war包修改配置文件