在我的应用程序中,我使用@Profile("prod")和注释bean @Profile("demo").第一个,正如你可以猜到:),用于连接到生产数据库的bean,第二个用于注释使用一些假数据库(HashMap或其他)的bean - 以加快开发速度.
我想要的是默认配置文件("prod"),如果它没有被" something-else " 覆盖,它将被使用.
完美将是我的web.xml:
<context-param>
<param-name>spring.profiles.active</param-name>
<param-value>prod</param-value>
</context-param>
Run Code Online (Sandbox Code Playgroud)
然后覆盖它,-Dspring.profiles.active="demo"以便我可以这样做:
mvn jetty:run -Dspring.profiles.active="demo".
Run Code Online (Sandbox Code Playgroud)
但遗憾的是,这不起作用.任何想法我怎么能得到那个?-Dspring.profiles.active="prod"不能在我的所有环境中进行设置.
我们使用spring 3.1的新环境配置文件功能.我们当前通过在部署应用程序的服务器上设置环境变量spring.profiles.active = xxxxx来设置活动配置文件.
我们认为这是一个次优的解决方案,因为我们要部署的war文件应该只有一个额外的属性文件,该文件设置spring应用程序上下文应该加载的环境,因此部署不依赖于服务器上设置的某些env var.
我试图弄清楚如何做到这一点并发现:
ConfigurableEnvironment.setActiveProfiles()
我可以用来以编程方式设置配置文件,但后来我仍然不知道在何时何地执行此代码.弹簧环境加载的地方?我可以从属性文件加载我想传递给方法的参数吗?
更新:我刚刚在docs上找到了我可以实现设置活动配置文件的内容?
我在maven POM.xml中有以下XML:
<profiles>
<profile>
<id>default</id>
<activation>
<activeByDefault>true</activeByDefault>
<property>
<name>default</name>
<value>!disabled</value>
</property>
</activation>
<modules>
<module>m1</module>
<module>m2</module>
<module>m3</module>
</modules>
</profile>
<profile>
<id>x</id>
<modules>
<module>m1</module>
</modules>
</profile>
</profiles>
Run Code Online (Sandbox Code Playgroud)
我想要实现的是:
当我跑步时mvn install,我希望它能够建立m1,m2和m3项目.
当我跑步时mvn install -Px,我希望它只能构建m1.
我目前的问题是,使用上面的代码,选项2构建所有m1,m2和m3.
我在我的应用程序中有一个名为ApplicationResources.properties的属性文件,其属性根据环境而变化.让我们说该物业是:
resources.location=/home/username/resources
Run Code Online (Sandbox Code Playgroud)
在开发期间和应用程序投入生产时执行应用程序时,此值不同.
我知道我可以在Maven中使用不同的配置文件在不同的环境中执行不同的构建任务.我想要做的是以某种方式根据正在使用的Maven配置文件替换属性文件中的resources.location的值.这甚至可能吗?
我们的政策是只构建1个可部署的jar.所有特定于环境的配置都是分开的,我们一起构建它们.所以在我们当前的Ant流程中,我们为每个环境都有一个属性文件,循环遍历它们,并为每个环境创建一组配置文件.
在我目前的POM XML中,我只能在命令行中构建一个配置文件.是否可以通过Maven实现?
以下是POM.xml的一些相关部分
<!-- Define profiles here and make DEV as default profile -->
<profiles>
<!-- dev Profile -->
<profile>
<id>dev</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
</profile>
<!-- qa Profile -->
<profile>
<id>qa</id>
<properties>
<env>qa</env>
</properties>
</profile>
<!-- prod Profile -->
<profile>
<id>prod</id>
<properties>
<env>prod</env>
</properties>
</profile>
</profiles>
...
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<version>2.4.3</version>
<executions>
<execution>
<phase>validate</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<filters>
<filter>env/${env}.properties</filter>
</filters>
<outputDirectory>${project.build.directory}/config/${env}
</outputDirectory>
<resources>
<resource>
<filtering>true</filtering>
<directory>${basedir}/src/main/config/default
</directory>
<includes>
<include>*.xml</include>
<include>*.properties</include>
</includes>
</resource>
Run Code Online (Sandbox Code Playgroud)
.....
谢谢,Prabhjot
我的问题非常基础.我需要知道所有蓝牙配置文件在蓝牙堆栈中加载了哪些HID,HFP或HSP?它是在主机层还是蓝牙硬件芯片组中,如USB加密狗/模块或主机和芯片组端?
根据我的理解,我们可以使用像BlueZ这样的软件包在主机端实现蓝牙配置文件,但同时连接到主机的蓝牙芯片组应该在其芯片组内部需要某种固件和逻辑(如CSVD,A-law).
在BlueZ Android软件包doc中找到的引用:"HFP中的宽带语音支持要求BT芯片采用mSBC编解码器".这意味着只有当BT芯片组提供像mSBC这样的低级支持时,Host层才能实现该Profile.
我的答案是这样的:"如果BT芯片组配备了支持配置文件'X'的低级固件,我们可以在主机层上构建任何蓝牙配置文件'X'.请同意或不同意我的理解.
我理解的PFA图表 配置文件的位置及其低级固件
我需要选择与Raspberry Pi兼容的USB蓝牙适配器,并使用BlueZ自定义HID和HFP.
提前感谢所有聪明的头脑!
我有一个POM,它声明了我的项目常见的Web应用程序.我使用它作为所有Web应用程序的父级.
只有在包装出现战争时才能激活配置文件吗?我尝试了属性方法,但这不起作用(因为它不是系统/环境属性).
由于这无法构建,我可以在安装POM时简单地禁用该配置文件,但我希望它本身更智能.
沃尔特
我在我的应用程序中使用django-registration.我想创建具有不同配置文件的不同类型的用户.例如,一个用户是教师而另一个用户是学生.
如何修改注册以设置user_type并创建正确的配置文件?
我有一个maven模块,有2个配置文件profile-a和profile-b
profile-a可以独立使用,但profile-b应该与profile-a一起运行
mvn install -P profile-a // valid
mvn install -P profile-a,profile-b // valid
mvn install -P profile-b // INVALID
Run Code Online (Sandbox Code Playgroud)
反正是为了确保用户不能只使用profile-b安装模块?如果profile-b单独使用,还是自动激活配置文件-a?
我有一个应用程序,我经常通过ad-hoc分发方法传递给测试人员.其中一些测试人员"关注",并且对配置文件和季度到期有足够的了解,并且可以(如果我忘记)给我一个重建新版本供他们测试的推动.
然而,一些用户似乎总是达到停止运行的程度然后婊子和呻吟 - 尽管他们可能会忽略iOS级别的提醒.
我的问题是,我可以在运行时以编程方式获取到期日期并执行我自己的"应用程序内"警报或系统通知,以提醒他们下载新版本吗?
profiles ×10
maven-2 ×4
maven ×3
spring ×2
bluetooth ×1
django ×1
environment ×1
ios ×1
java ×1
provisioning ×1
registration ×1
runtime ×1