我是 MuleSoft 的新手。我创建了一个 Maven Mule 项目,我的一个流程具有组件 Http Request。该组件具有“主机”属性。但是,我有 2 个环境:测试和生产。是否可以根据在 Maven 上创建的配置文件动态更改“主机”属性值?
问问题
789 次
2 回答
2
好问题!您实际上正在寻找的是特定于环境的配置。
Mule 基于 Maven 配置文件构建并提供了开箱即用 (OOTB)
看看这个链接
总结如下配置http端点
<http:listener-config name="HttpListenerConfiguration"
doc:name="HTTP Listener Configuration"
host="${mule.env.host}"
port="${mule.env.port}"
basePath="${mule.env.path}" />
然后有一个特定于环境的属性文件
qa.basePath=test/products
qa.host=localhost
qa.port=8082
prod.basePath=products
prod.host=www.acme.com
prod.port=8081
在构建时,您将指定您正在为特定环境构建,并且这些特定值将在您的配置中被替换
更新:根据 Maven 配置文件选择属性文件
创建特定于环境的属性文件,因此您的项目结构和 pom.xml 将如下所示
我确实记得在资源部分遇到了一些麻烦,所以在此处粘贴相关部分
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<version>1.7</version>
<executions>
<execution>
<id>add-resource</id>
<phase>generate-resources</phase>
<goals>
<goal>add-resource</goal>
</goals>
<configuration>
<resources>
<resource>
<directory>src/main/app/</directory>
</resource>
<resource>
<directory>mappings/</directory>
</resource>
<resource>
<directory>src/main/api/</directory>
</resource>
<resource>
<directory>src/test/resources/</directory>
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>
您的 mule-project.xml 应如下所示
排序后,只需在您的 Maven 构建中选择一个配置文件
mvn clean 编译包 -P qa
于 2015-08-03T22:48:38.893 回答
1
@Sudarshan 帮了我很多忙!但是,maven 解决方案不起作用。我所做的是:
在 Maven 上,我添加了以下插件:
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>properties-maven-plugin</artifactId>
<version>1.0-alpha-2</version>
<executions>
<execution>
<phase>generate-resources</phase>
<goals>
<goal>write-active-profile-properties</goal>
</goals>
<configuration>
<outputFile>
${project.build.outputDirectory}/conf-app.properties
</outputFile>
</configuration>
</execution>
</executions>
</plugin>
要在 Maven 上创建配置文件,我所做的是:
<profile>
<id>qa</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<properties>
<host>999.999.999.999</host>
<port>8080</port>
<basePath>/v1</basePath>
</properties>
</profile>
</profiles>
然后,在位于 src/main/app 的 xml 流中,我的 HTTP 请求如下:
<http:request-config name="HTTP_Request_Configuration" host="${host}" port="${port}" basePath="${basePath}" doc:name="HTTP Request Configuration"
connectionIdleTimeout="180000" />
要运行创建的配置文件,请在 Maven 上使用以下命令:
mvn clean package -Paq -X
在那之后,你会很高兴的!
于 2015-08-05T19:53:23.923 回答