如何在Jhipster中管理多个配置文件

保罗·菲达尔戈

jhipster-sample-app为例,鉴于同一应用程序将安装在具有不同配置的多台计算机中,我如何管理多个配置文件?

由于将使用apache tomcat进行部署,并且可能正在运行一个或多个基于jhipster的应用程序,因此我想避免使用

-Dspring.profiles.active = MY_PROFILE

在JAVA_OPTS变量中。

同样可能在相同的tomcat实例上以不同的配置文件运行相同的应用程序。

赫马尔拜兹

为应用程序的配置获取配置文件以支持不同的环境(例如开发,测试,生产)是一个坏主意。让我们假设您已经定义了简单的三个配置文件,例如dev,test,prod。因此,现在您为这样的dev环境构建

mvn -Pdev clean package

好了,现在您可以拿起您的工件并进行部署。下次需要测试环境时,必须执行以下操作:

mvn -Ptest clean package

您可以拿走您的工件并进行部署。但是,如果您想为两个或三个环境创建会怎样?

mvn -Pdev,test,prod clean package

这通常会失败,因为处理不同的配置文件以产生三个不同的工件是非常棘手的(并且在相同区域中是不可能的)。因此,最佳做法是删除配置文件,并通过以下方式生成构建文件:

mvn clean package

您需要的所有软件包都一个用于开发,一个用于测试,一个用于产品。

一种解决方案是创建一个像这样的项目结构:

.
|-- pom.xml
`-- src
    |-- main
    |   |-- java
    |   |-- resources
    |   |-- environment
    |   |   |-- test
    |   |   |   `-- database.properties
    |   |   |-- qa
    |   |   |   `-- database.properties
    |   |   `-- production
    |   |       `-- database.properties
    |   `-- webapp

不同的文件夹和属性文件只是用于显示路径的占位符。接下来,您需要为每个环境提供一个汇编描述符,如下所示:

<assembly xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0 http://maven.apache.org/xsd/assembly-1.1.0.xsd">

  <id>test</id>
  <formats>
    <format>war</format>
  </formats>
  <includeBaseDirectory>false</includeBaseDirectory>
  <dependencySets>
    <dependencySet>
      <unpack>true</unpack>
      <useProjectArtifact>true</useProjectArtifact>
    </dependencySet>
  </dependencySets>
  <fileSets>
    <fileSet>
      <outputDirectory>WEB-INF</outputDirectory>
      <directory>${basedir}/src/main/environment/test/</directory>
      <includes>
        <include>**</include>
      </includes>
    </fileSet>
  </fileSets>
</assembly>

最后,您需要像这样配置maven-assembly-plugin:

<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-assembly-plugin</artifactId>
  <executions>
    <execution>
      <id>test</id>
      <phase>package</phase>
      <goals>
        <goal>single</goal>
      </goals>
      <configuration>
        <descriptors>
          <descriptor>${project.basedir}/src/main/assembly/test.xml</descriptor>
        </descriptors>
      </configuration>
    </execution>
    <execution>
      <id>qa</id>
      <phase>package</phase>
      <goals>
        <goal>single</goal>
      </goals>
      <configuration>
        <descriptors>
          <descriptor>${project.basedir}/src/main/assembly/qa.xml</descriptor>
        </descriptors>
      </configuration>
    </execution>
    <execution>
      <id>production</id>
      <phase>package</phase>
      <goals>
        <goal>single</goal>
      </goals>
      <configuration>
        <descriptors>
          <descriptor>${project.basedir}/src/main/assembly/production.xml</descriptor>
        </descriptors>
      </configuration>
    </execution>
  </executions>
</plugin>

最后,这将产生以下工件:artifact-VERSION-dev.warartifact-VERSION-test.war并且artifact-VERSION-prod.war只需调用Maven。如果您对该博客文章进行更深入的研究,那么上面的内容可能会更加优雅。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在RestEasy中处理多个编组配置文件?

来自分类Dev

如何在产品配置文件中的jhipster应用上启用swagger ui?

来自分类Dev

如何在Digital Ocean的源代码管理中包含nginx和gunicorn配置文件?

来自分类Dev

如何在网络管理器中为网络接口设置默认配置文件?

来自分类Dev

如何在网络管理器中为网络接口设置默认配置文件?

来自分类Dev

在新的Firebase中,如何在xcode中使用多个配置文件?

来自分类Dev

如何在.testcaferc配置文件中为夹具元设置多个过滤器?

来自分类Dev

如何在Opera 37中使用多个配置文件?

来自分类Dev

如何在Eclipse中配置ORMLite的表配置文件?

来自分类Dev

如何在Spring配置文件中配置Hibernate

来自分类Dev

如何在Centos中配置网络配置文件?

来自分类Dev

如何在Struts配置文件中的文件夹内配置文件的路径

来自分类Dev

如何在Struts配置文件中的文件夹内配置文件的路径

来自分类Dev

Symfony 2。如何捆绑中的多个配置文件

来自分类Dev

Symfony 2。如何捆绑中的多个配置文件

来自分类Dev

如何清除多个Firefox配置文件中的缓存?

来自分类Dev

如何在其他配置文件中获取配置文件值-Laravel 5

来自分类Dev

如何在Java中的配置文件中存储谓词

来自分类Dev

配置文件管理

来自分类Dev

如何在phpMyAdmin中禁用查询配置文件

来自分类Dev

如何在shell脚本中解析配置文件(* .conf)?

来自分类Dev

如何在xCode 5中删除Provisioning配置文件

来自分类Dev

如何在NixOs中更新ssh配置文件

来自分类Dev

如何在laravel中永久更改配置文件

来自分类Dev

如何在Dockerfile中复制配置文件?

来自分类Dev

如何在mongodb配置文件中设置授权?

来自分类Dev

如何在xcode 5中删除旧的配置文件?

来自分类Dev

如何在gcloud中更改活动配置文件?

来自分类Dev

如何在vs代码中更新配置文件?

Related 相关文章

  1. 1

    如何在RestEasy中处理多个编组配置文件?

  2. 2

    如何在产品配置文件中的jhipster应用上启用swagger ui?

  3. 3

    如何在Digital Ocean的源代码管理中包含nginx和gunicorn配置文件?

  4. 4

    如何在网络管理器中为网络接口设置默认配置文件?

  5. 5

    如何在网络管理器中为网络接口设置默认配置文件?

  6. 6

    在新的Firebase中,如何在xcode中使用多个配置文件?

  7. 7

    如何在.testcaferc配置文件中为夹具元设置多个过滤器?

  8. 8

    如何在Opera 37中使用多个配置文件?

  9. 9

    如何在Eclipse中配置ORMLite的表配置文件?

  10. 10

    如何在Spring配置文件中配置Hibernate

  11. 11

    如何在Centos中配置网络配置文件?

  12. 12

    如何在Struts配置文件中的文件夹内配置文件的路径

  13. 13

    如何在Struts配置文件中的文件夹内配置文件的路径

  14. 14

    Symfony 2。如何捆绑中的多个配置文件

  15. 15

    Symfony 2。如何捆绑中的多个配置文件

  16. 16

    如何清除多个Firefox配置文件中的缓存?

  17. 17

    如何在其他配置文件中获取配置文件值-Laravel 5

  18. 18

    如何在Java中的配置文件中存储谓词

  19. 19

    配置文件管理

  20. 20

    如何在phpMyAdmin中禁用查询配置文件

  21. 21

    如何在shell脚本中解析配置文件(* .conf)?

  22. 22

    如何在xCode 5中删除Provisioning配置文件

  23. 23

    如何在NixOs中更新ssh配置文件

  24. 24

    如何在laravel中永久更改配置文件

  25. 25

    如何在Dockerfile中复制配置文件?

  26. 26

    如何在mongodb配置文件中设置授权?

  27. 27

    如何在xcode 5中删除旧的配置文件?

  28. 28

    如何在gcloud中更改活动配置文件?

  29. 29

    如何在vs代码中更新配置文件?

热门标签

归档