如何在开发和部署之间设置不同的文件路径?

时间:2018-01-27 01:32:41

标签: java maven

我有一个对象,它接受一个config.xml文件的字符串。我在开发时将它设置为资源文件夹,但在构建项目时如何将其更改为其他位置?

2 个答案:

答案 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将使用您的个人资料部分中的指定值替换该值。在资源部分。

Here is an introduction to maven profiles