我有一个对象,它接受一个config.xml文件的字符串。我在开发时将它设置为资源文件夹,但在构建项目时如何将其更改为其他位置?
答案 0 :(得分:3)
如果你正在寻找一些非常简单的东西,那么我经常看到的应用程序实际上包含多个“myapp。$ {env} .properties”文件中的大多数配置(弹簧语法,但是相同的事情可以在普通的Java中完成)其中“env”在启动时使用java的“-Denv =”定义。如果某些配置需要在应用程序本身外部(因为它包含密码),那么只需在特定于环境的.properties文件中配置该文件的路径。您只需在每个环境中使用正确的-D启动应用程序,或者将这些应用程序定义为环境变量,这样您就不必记住在每个应用程序的命令行中添加它。
如果你想要更复杂的东西,你也可以看看Apache's common-config。
答案 1 :(得分:2)
您可以使用配置文件和过滤的组合。在pom.xml中使用这些位
<profiles>
<profile>
<id>development</id>
<properties>
<somevalue>development value</somevalue>
</properties>
</profile>
...
</profiles>
<build>
...
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
</resource>
假设你有一个&#34; somevalue&#34; config.xml
中的变量,如:
<property name="someproperty" value="${somevalue}"/>
只要您已启用&#34;过滤&#34;,当您将config.xml
文件写入target
目录时,Maven将使用您的个人资料部分中的指定值替换该值。在资源部分。