我有一个用Maven生成的Java EE 6应用程序,在NetBeans 7中编码,并部署在GlassFish
3.1.2上。当我快要完成时,我发现自己正在部署演示版本。
问题是,我没有针对不同环境(如dev,QA,demo,prod等)构建的简单方法。对于某些东西,我一直在使用Java类,该类具有大量返回的静态getter值基于环境常数的值。但这对我有条件设置没有帮助
可能还有许多其他我现在无法考虑的事情,这些事情分散在XML文件中。
有没有什么方法可以定义这些配置文件的多个版本,并仅在构建时设置标志以选择环境,而在未指定环境的情况下默认为dev?在这种情况下,有什么办法可以让Maven为我工作?
您可以使用maven来实现。特别是使用资源过滤。
首先,您可以定义配置文件列表:
<profiles>
<profile>
<id>dev</id>
<properties>
<env>development</env>
</properties>
<activation>
<activeByDefault>true</activeByDefault> <!-- use dev profile by default -->
</activation>
</profile>
<profile>
<id>prod</id>
<properties>
<env>production</env>
</properties>
</profile>
</profiles>
然后,您需要过滤的资源:
<build>
<outputDirectory>${basedir}/src/main/webapp/WEB-INF/classes</outputDirectory>
<filters>
<filter>src/main/filters/filter-${env}.properties</filter> <!-- ${env} default to "development" -->
</filters>
<resources>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**/*.xml</include>
<include>**/*.properties</include>
</includes>
<filtering>true</filtering>
</resource>
</resources>
</build>
然后基于src/main/filters
目录中的配置文件的自定义属性:
filter-development.properties
# profile for developer
db.driver=org.hsqldb.jdbcDriver
db.url=jdbc:hsqldb:mem:web
和
filter-production.properties
# profile for production
db.driver=com.mysql.jdbc.Driver
db.url=jdbc:mysql://localhost:3306/web?createDatabaseIfNotExist=true
要使用生产配置文件,您可以使用mvn clean package -Pprod
command 打包war 。
在这里,您可以看到在maven中使用配置文件的示例项目。
本文向大家介绍springboot多环境(dev、test、prod)配置详解,包括了springboot多环境(dev、test、prod)配置详解的使用技巧和注意事项,需要的朋友参考一下 我们在开发应用的时候,通常同一套程序会被应用和安装到几个不同的环境中,比如开发、测试、生产等。 其中每个环境的数据库地址、服务器端口等配置都不同。如果在为不同环境打包时都要频繁的修改配置文件,那必将是个非常繁
问题内容: 我想创建一个Dockerfile,它将能够构建三个不同的映像(此刻一个)。这些映像仅在配置文件中有所不同。 我正在尝试: 创建三个不同的Docker文件(不起作用,因为dockerfile需要命名为Dockerfile并且位于上下文根目录中 寻找一种将参数传递给docker build命令的方法-找不到 使用ONBUILD命令-我创建了一个主文件和三个特定的文件,它们将特定的conf文
类型: Boolean 默认值: true 配置 Nuxt.js 应用是开发模式还是生产模式。 dev 属性的值会被 nuxt 命令 覆盖: 当使用 nuxt 命令时,dev 会被强制设置成 true 当使用 nuxt build, nuxt start 或 nuxt generate 命令时,dev 会被强制设置成 false 所以,在 编码中使用 nuxt.js 时才会用到该配置。 例如 (n
我正在研究HELM图表,但我无法加入我们如何使用模板/deployment.yaml、values.yaml和a deployment.yaml来建立相同的图表。 注: 它是同一个环境变量,将根据部署环境保存不同的值。
我想添加新的日志文件MyNewLog.log,我不想在不影响现有日志的情况下,在不同的环境中使用不同的日志级别。dev环境和prod环境的级别在下面的描述中提到: 用于开发环境 级别错误处于活动状态 级别信息处于活动状态 级别调试处于活动状态(开发人员的默认级别) 我添加了一个新的appendermyNewLog,并将默认级别设置为DEBUG,然后创建了一个名为myNewLog的3个记录器,每个记
config.js里怎么配置,配置好后又怎么知道打的包是开发环境的包还是生产环境的包? app是不是不能打包?有人试过么?