精华内容
下载资源
问答
  • 主要介绍了Maven根据不同环境打包不同配置文件的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
  • vue 不同环境打包

    千次阅读 2018-07-25 16:08:50
    vue开发完成之后就要分不同环境打包测试,本文即打包sit,prod环境,并在本地可以正常运行npm run dev 的解决方案 安装cross-env,cnpm install cross-env,在你项目根目录下执行 在package.json增加打包命令 在...
    • vue开发完成之后就要分不同环境打包测试,本文即打包sit,prod环境,并在本地可以正常运行npm run dev 的解决方案
    • 安装cross-env,cnpm install cross-env,在你项目根目录下执行
      这里写图片描述
    • 在package.json增加打包命令
      这里写图片描述
      • 在config下增加对应的配置文件,原来的prod配置文件也要加上 ENV_CONFIG:‘“prod”’,项。
    • 这里写图片描述
      • 修改index.js,引入配置文件,assetsPublicPath配置为你在tomcat下建立的要访问的目录名。例如 myproject
        这里写图片描述
        这里写图片描述
      • 修改util.js ,增加访问路径的相对地址。多个环境,因此assetsSubDirectory的值做一个多次判断最后赋值。
        这里写图片描述
        这里写图片描述
      • 修改webpack.prod.conf.js配置,同样是多环境下env的赋值操作。
        这里写图片描述
      • 修改webpack.base.conf.js配置,同样是多环境下env的赋值操作。
      • 这里写图片描述
      • 修改build.js.删除指定的环境,打印出正在打包的环境。
        这里写图片描述
      • 到此完成。打包命令npm run build:sit npm run build:prod
        这里写图片描述
      • 项目架构
        这里写图片描述
      • 打包后查看index.html,可以看到你引入的js的路径
      • 这里写图片描述
      • 如有疑问,欢迎留言
    展开全文
  • maven 不同环境打包

    千次阅读 2019-02-19 10:26:45
    很多时候,项目会分为,本地环境(local),测试环境(dev),生产环境(product),此时给项目打包,就会很麻烦,因为配置文件不同比如数据库链接,文件地址等,所以打包的时候需要修改配置文件,maven这里提供了很...

        很多时候,项目会分为,本地环境(local),测试环境(dev),生产环境(product),此时给项目打包,就会很麻烦,因为配置文件不同比如数据库链接,文件地址等,所以打包的时候需要修改配置文件,maven这里提供了很便利的操作,通过配置文件和命令就可以分别打出来不同的war包,在不同的环境中使用;


    一、项目中resource下面需要区分一下,如下图,在resource中新建 dev  local  pro 文件夹,名字也可以自己根据自己习惯命名。

    建立好目录后,可以把一些不同环境的配置各自放入到响应的文件夹,我的这个项目不同的配置有好几个,所以我在文件夹下面又分了子文件件,我的不同配置分为 数据库链接配置,还有web.xml 还有自己系统初始化的一些配置。

    二、配置pom文件

    pom文件里面添加 如下配置,和上面resource里面的配置相对应

    <profiles>
      <profile>
        <id>local</id><!--本地环境-->
        <properties>
          <package.environment>local/config</package.environment>
          <webxml.environment>local/webxml</webxml.environment>
        </properties>
        <activation>
          <activeByDefault>true</activeByDefault>
        </activation>
      </profile>
      <profile>
        <id>pro</id><!--生产环境-->
        <properties>
          <package.environment>pro/config</package.environment>
          <webxml.environment>pro/webxml</webxml.environment>
        </properties>
      </profile>
      <profile>
        <id>dev</id><!--测试环境-->
        <properties>
          <package.environment>dev/config</package.environment>
          <webxml.environment>dev/webxml</webxml.environment>
        </properties>
      </profile>
    </profiles>
    

     

    编译时候添加如下配置,保证项目正常启动

    <build>
      <finalName>csp</finalName>
    
      <resources>
        <resource>
          <directory>${basedir}/src/main/resources</directory>
          <!-- 资源根目录排除各环境的配置,防止在生成目录中多余其它目录 *一级目录 **包含子目录 -->
          <excludes>
            <exclude>local/**</exclude>
            <exclude>pro/**</exclude>
            <exclude>dev/**</exclude>
          </excludes>
          <filtering>true</filtering>
        </resource>
        <resource>
          <directory>${basedir}/src/main/resources/${package.environment}</directory>
          <filtering>true</filtering>
        </resource>
        <resource>
          <directory>${basedir}/src/main/resources/${webxml.environment}</directory>
          <filtering>true</filtering>
        </resource>
      </resources>
      <pluginManagement><!-- lock down plugins versions to avoid using Maven defaults (may be moved to parent pom) -->
        <plugins>
          <!-- war打包插件 -->
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-war-plugin</artifactId>
            <version>3.2.2</version>
            <configuration>
              <webResources>
                <!--动态指定文件-->
                <resource>
                <directory>src/main/resources/${package.environment}</directory>
                <targetPath>WEB-INF/classes</targetPath>
                <filtering>true</filtering>
               </resource>
                <resource>
                  <directory>src/main/resources/${webxml.environment}</directory>
                  <targetPath>WEB-INF</targetPath>
                  <filtering>true</filtering>
                </resource>
              </webResources>
             <packagingExcludes>
                WEB-INF/classes/dev/**,WEB-INF/classes/pro/**,WEB-INF/classes/local/**,
                WEB-INF/classes/webxml/**
              </packagingExcludes>
            </configuration>
          </plugin>
        </plugins>
      </pluginManagement>
    </build>

     

    在上面的配置中,

    resources配置保证项目可以本地编译,支持本地debug,

    其中 excludes标签是用来排除重复的内容,需要注意的是 * 代表一级目录 **代表包含子目录;

    configuration标签设置打包的一些配置,其中: 

    directory:定义了要进行打包的文件路径, 

    targetPath: 打包的目录文件夹,即将文件打成war包的时候放到war包的此目录下 

    filtering:在打包的时候是否将配置文件中的用${}表示的值给替换。

    packagingExcludes是在生成war包时不包含指定文件或文件夹到war文件中,不论它们是否存在于war文件夹下。

     

    这样就实现了不同环境的部署,方便项目上线测试;

    展开全文
  • 使用maven profile 实现不同环境打包

    千次阅读 2016-09-24 16:20:41
    使用maven profile 实现不同环境打包

    maven 的build 配置可以在两处出现:

    <span style="font-size:14px;"><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"> 
      <!-- 项目级别的构建,基础配置 -->
      <build>...</build>
      
      <profiles>
        <profile>
          <!-- 特殊的构建 -->
          <build>...</build>
        </profile>
      </profiles>
    </project></span>
    工程运行环境有研发,测试和生产,不同的运行环境配置不同。 maven可根据不同的环境打包不同的配置文件。
    有两种方式:
    1)、打包时指定文件目录,使用指定的文件夹下的配置文件。
    2)、使用占位符,点位符使用指定的profile 中的properties 的key对应值替换,这样不同环境就可以加载不同的配置文件。
    下面分别说明这两种情况。
    1、指定打包过虑的文件目录
    项目分为多个环境:研发(dev),测试(test),生产(product),演示(demo)。配置文件目录如下:


    src/main/resources 中的配置文件是在开发时使用的。
    src/main/filters   文件夹是不同环境的配置文件。
    说明:不同环境的配置文件只是各环境特定的配置,公共可用的配置都是在src/main/resources 文件夹中,如:common.properties

    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">
        <modelVersion>4.0.0</modelVersion>
        <groupId>com.masz.test</groupId>
        <artifactId>package-test</artifactId>
        <version>1.0.0</version>
        <packaging>jar</packaging>
        <properties>
            <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        </properties>
    	
        <profiles>
            <profile>
                <id>qa</id>
                <properties>
                    <package.environment>qa</package.environment>
                </properties>
                <!-- 配置默认激活(打包时不指定 -P 参数使用此打包) -->
                <activation>
                    <activeByDefault>true</activeByDefault>
                </activation>
                <build>
                    <!-- 表示发布时要打包的资源文件,需要指明,这样才会打到包中去 -->
                    <resources>
                        <resource>
                            <directory>src/main/resources</directory>
                            <includes>
                                <include>**/*</include>
                            </includes>
                            <excludes> <!-- 不包含的文件(${package.environment})下面的文件 -->
                                <exclude>${package.environment}/*</exclude>
                            </excludes>
                            <filtering>true</filtering>    <!-- 是否使用过滤器 -->
                        </resource>
                        <resource>
                            <directory>src/main/filters/${package.environment}</directory>
                            <includes>
                                <include>**.*</include>
                            </includes>
                            <filtering>true</filtering>
                        </resource>
                    </resources>
                    <finalName>${project.artifactId}</finalName><!-- 打包后的文件名 -->
                </build>
            </profile>
        </profiles>
        <!-- 全局build 配置 -->
        <build>
            <sourceDirectory>src/main/java</sourceDirectory>
            <outputDirectory>target/classes</outputDirectory>
            <plugins>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-surefire-plugin</artifactId>
                    <version>2.3</version>
                    <configuration>
                        <includes>
                            <include>**/*Test*.java</include>
                        </includes>
                    </configuration>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-compiler-plugin</artifactId>
                    <configuration>
                        <source>1.6</source>
                        <target>1.6</target>
                    </configuration>
                </plugin>
            </plugins>
        </build>
    </project>
    打包命令:
    mvn clean package -Pqa -Dmaven.test.skip=true
    -P 参数指定使用 profile 配置id 为qa 的build 参数打包。()

    项目代码:http://download.csdn.net/detail/convict_eva/9638939


    2、使用占位符
    项目如下:


    applicationContext.xml 配置如下:

        <bean id="configurationProperties"
            class="org.springframework.beans.factory.config.PropertiesFactoryBean">
            <property name="locations">
                <list>
                    <value>classpath*:${env.props.file}</value><!-- 使用点位符 -->
                    <value>classpath*:common.properties</value>
                </list>
            </property>
        </bean>
    pom.xml 配置:

    <!-- 指定profile 对应的属性 -->
        <profiles>
            <profile>
                <id>demo</id>
                <properties>
                    <env.props.file>filters/demo/application.properties</env.props.file>
                </properties>
            </profile>
            <profile>
                <id>dev</id>
                <activation>
                    <activeByDefault>true</activeByDefault>
                </activation>
                <properties>
                    <env.props.file>filters/dev/application.properties</env.props.file>
                </properties>
            </profile>
            <profile>
                <id>product</id>
                <properties>
                    <env.props.file>filters/product/application.properties</env.props.file>
                </properties>
            </profile>
            <profile>
                <id>qa</id>
                <properties>
                    <env.props.file>filters/qa/application.properties</env.props.file>
                </properties>
            </profile>
        </profiles>
    
        <!-- 全局build 配置 -->
        <build>
            <resources>
                <resource>
                    <directory>src/main/java</directory>
                    <includes>
                        <include>**/*.xml</include>
                    </includes>
                </resource>
                <resource>
                    <directory>src/main/resources</directory>
                    <includes>
                        <include>**/*.xml</include>
                        <include>**/*.properties</include>
                    </includes>
                </resource>
                <resource>
                    <directory>src/main/resources</directory>
                    <filtering>true</filtering>
                </resource>
            </resources>
        </build>

    打包命令:
    mvn clean package -Pqa -Dmaven.test.skip=true
    打包后解压,占位符已经被替换。
    注:配置文件可以单独为一个工程,项目依赖这个工程即可。这样也方便管理

    项目代码:http://download.csdn.net/detail/convict_eva/9638941

    展开全文
  • springboot不同环境打包

    千次阅读 2019-07-06 09:07:22
    springboot+maven打包,项目中经常用到不同环境打包不同的配置文件,比如连接的数据库、配置文件、日志文件级别等都不一样。 2. 解决方案 在pom.xml文件中定义 2.1 真实代码 <project> <dep...

    1. 场景描述

    springboot+maven打包,项目中经常用到不同的环境下打包不同的配置文件,比如连接的数据库、配置文件、日志文件级别等都不一样。

    2. 解决方案

    在pom.xml文件中定义

    2.1 真实代码

     <project>
      <dependencies>
       </dependencies>
     <profiles>
            <profile>
                <id>dev</id>
                <activation>
                    <activeByDefault>true</activeByDefault>
                </activation>
                <properties>
                    <deploy.type>dev</deploy.type>
                </properties>
            </profile>
            <profile>
                <id>prod</id>
                <properties>
                    <deploy.type>prod</deploy.type>
                </properties>
            </profile>
        </profiles>
    
        <build>
            <resources>
                <resource>
                    <directory>src/main/profiles/${deploy.type}</directory>
                </resource>
                <resource>
                    <directory>src/main/resources/</directory>
                </resource>
                <resource>
                    <directory>src/main/java</directory>
                    <includes>
                        <include>**/*.xml</include>
                    </includes>
                </resource>
            </resources>
            <plugins>
                <plugin>
                    <artifactId>maven-war-plugin</artifactId>
                    <version>3.0.0</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-compiler-plugin</artifactId>
                    <configuration>
                        <source>8</source>
                        <target>8</target>
                    </configuration>
                </plugin>
            </plugins>
        </build>
    </project>
    

    2.2 代码说明

    重点是这行代码,结合maven就能打包不同的文件夹。

               <resource>
                    <directory>src/main/profiles/${deploy.type}</directory>
                </resource>
    

    2.3 效果图:

    2.3.1 程序目录

    在这里插入图片描述

    2.3.2 maven目录

    在这里插入图片描述

    需要打包那个环境的,打钩后双击就可以了。


    更多知识请关注公众号:「软件老王」,IT技术与相关干货分享,回复关键字获取对应干货,java,送必看的10本“武功秘籍”;图片,送100多万张可商用高清图片;面试,送刚毕业就能月薪“20k”的java面试题,后续不断更新中,比如“软考”、“工具”等,已经在整理中。

    在这里插入图片描述

    展开全文
  • Maven根据不同环境打包不同配置文件

    万次阅读 2016-07-27 14:42:41
    开发项目时会遇到这个问题:开发环境,测试环境,生产... 下面介绍一种方法,利用Maven插件来打包不同环境的配置文件。我们用到的是maven-war-plugin这个插件。 首先贴出整个pom文件: <project xmlns="...
  • Spring Boot项目使用maven-assembly-plugin根据不同环境打包成tar.gz或者zip
  • vue 不同环境打包配置

    千次阅读 2019-03-17 00:23:06
    可是在实际工作中可能有生产环境,测试环境甚至更多,每个环境的请求地址都是不同的,如果我们每次都手动修改请求地址并打包,将非常繁琐,所以我们需要稍微配置一下,可以实现项目不同环境打包配置: 1、首先...
  • nuxt根据不同环境打包接口 先看代码 package.json: script中 staging为测试环境的打包命令 production 为正式环境的打包命令 stagingStart 为测试环境启动nuxt服务端渲染命令 production...
  • 开发时是一个环境,机器ip地址和端口和测试机器都不一样,每次打包完都需要手动修改配置文件,很麻烦。 实现: 首相在resource文件夹下建三个文件夹:dev, test, product,这三个文件夹分别放开发,测试,生产的配置...
  • portable-config-maven-plugin是Maven针对不同环境打包使用的,在使用该插件之前首先在pom文件中进行如下配置: <id>test <name>environment.type
  • vue项目webpack根据不同区域打包不同的文件步骤 需求简介:不同的区域获取不同的功能权限目录,打包的时候不将全部前端文件打包进去,各个地区有哪些功能 就打包哪些功能的文件,分区域部署。 思路: 1.构建一个下...
  • maven 不同环境打包方案

    万次阅读 2016-06-23 15:28:34
    不同环境,配置不同,或数据源,或服务器,或数据库等; 问题来了,如何使用Maven针对不同的环境来打包呢? Maven提供了Profile的概念,用来解决此类问题,其原理很简单,就是使用变量替换;举个例子来说明,...
  • Gradle定制三种不同环境(生产环境、测试环境、开发环境)。 切换不同的Build Variants实现。 测试/开发环境Apk与生成环境Apk可以同时安装在一个设备上。 切换环境方式或打包Apk方式: 1.使用Build Variants视图下app...
  • maven根据不同环境打包

    千次阅读 2018-08-14 11:32:21
    打包的时候用对应的文件目录下的配置文件。第三个是测试环境,第四个是三个环境的共同配置。 |-- resources | |-- dev | |-- product | |-- qa | `-- public 对于不同的environment定义不同的profil...
  • 这一节我们介绍 Maven 的 Web 项目使用 war 插件针对不同环境打包。这是我在 BAE 部署自己的博客应用的时候整理的一种方案,供大家参考。最最重要的思路其实就一条:打包之前替换配置文件,从手动变为自动。重点内容...
  • maven 不同环境打包命令

    千次阅读 2018-07-26 22:03:00
    mvn clean package mvn clean package -Pdev mvn clean package -Ptest mvn clean package -Pproduct 转载于:https://www.cnblogs.com/zuolun2017/p/9374750.html
  • 下面拿vue项目做个改动 ...2.package.json配置不同环境打包的命令 { ... "scripts": { "dev": "webpack-dev-server --inline --progress --config build/webpack.dev.conf.js", "build":...
  • 首先这段是给mvn用来指定哪个环境的,尽管这里写了默认dev生效,但是最终决定权还在mvn手里 &lt;profiles&gt; &lt;profile&gt; &lt;id&gt;dev&lt;/id&gt; &lt;activation&...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 208,056
精华内容 83,222
关键字:

不同环境打包