Java 在Spring配置文件中分解文件路径

Java 在Spring配置文件中分解文件路径,java,spring,maven-3,liquibase,Java,Spring,Maven 3,Liquibase,我的项目中有一个Spring配置java文件(即带有@Configuration注释)。现在我正在这个类中创建一个SpringLiquibasebean。changelogs的主文件,即db.changelog.xml文件位于resources文件夹中。因此,如果我使用springLiquibaseObj.setChangeLog(“classpath:db.changelog.xml”),就可以直接从resources文件夹访问它方法。但是,当我尝试使用从db.changelog.xml文件访

我的项目中有一个Spring配置java文件(即带有
@Configuration
注释)。现在我正在这个类中创建一个
SpringLiquibase
bean。changelogs的主文件,即
db.changelog.xml
文件位于resources文件夹中。因此,如果我使用
springLiquibaseObj.setChangeLog(“classpath:db.changelog.xml”),就可以直接从
resources
文件夹访问它方法。但是,当我尝试使用
db.changelog.xml
文件访问其他xml文件时,我发现一个错误,即找不到文件夹和文件

在这里,我想将
db.changelog.xml
文件保存在
resources
文件夹中,并将所有其他新的changelog文件保存在
config
文件夹中,该文件夹应与
resources
处于同一级别。原因是,在
resources
文件夹中,有包,因此文件夹结构
config/1.0.0
被认为是
config/1/0/0
,我不希望这样

在我的项目中,有没有任何方法可以通过当前设置来实现这种结构(如下所示)

  • 配置
    • 1.0.0
      • db.changelog.201412120101.xml
    • 1.1.0
    • 2.0.0
  • 资源
    • db.changelog.xml

  • 配置
    • 1.0.0
      • db.changelog.201412120101.xml
    • 1.1.0
    • 2.0.0
    • db.changelog.xml
  • 资源

Liquibase使用应用程序类路径,因此只要配置在类路径中,您就应该能够加载它们

它们将有一个相对于config的路径,因此在您的示例中类似于“src=”1.0.0/db.changelog.20131220101.xml”


如果config不在类路径中,则可以将relativeToChangeLog=“true”属性与src=“../../config/1.0.0/db.changelog.201412120101.xml一起使用“但是,让liquibase直接访问config是更干净的选择。

liquibase使用应用程序类路径,因此只要config位于类路径中,您就应该能够加载它们。”

它们将有一个相对于config的路径,因此在您的示例中类似于“src=”1.0.0/db.changelog.20131220101.xml”


如果config不在类路径中,则可以将relativeToChangeLog=“true”属性与src=“../../config/1.0.0/db.changelog.201412120101.xml一起使用“但是让liquibase直接访问配置是一个更干净的选择。

我找到了解决方案。在此之前,我将文件夹
src/main/config
复制到netbeans中的
src/main/resources
中,因此它将该文件夹作为包。因此,文件夹名--
config/db/1.0.0
被更改为
config/db/1/0/0
,但当我在
resources
文件夹中创建新文件夹时,它工作正常,文件夹
1.0.0
中的所有文件都可以正确访问。现在,我的文件夹结构如下:

  • 资源
    • 配置
      • 分贝
        • 1.0.0
          • db.changelog.201412120101.xml
        • 1.1.0
        • 2.0.0
    • db.changelog.xml

我可以从Spring类中访问
db.changelog.xml
文件,
springLiquibaseObj.setChangeLog(“classpath:db.changelog.xml”)
和其他来自
db.changelog.xml
文件的changelog文件作为,
我找到了解决方案。在此之前,我将文件夹
src/main/config
复制到netbeans中的
src/main/resources
中,因此它将该文件夹作为包。因此,文件夹名--
config/db/1.0.0
被更改为
config/db/1/0/0
,但当我在
resources
文件夹中创建新文件夹时,它工作正常,文件夹
1.0.0
中的所有文件都可以正确访问。现在,我的文件夹结构如下:

  • 资源
    • 配置
      • 分贝
        • 1.0.0
          • db.changelog.201412120101.xml
        • 1.1.0
        • 2.0.0
    • db.changelog.xml

我可以从Spring类中访问
db.changelog.xml
文件,
springLiquibaseObj.setChangeLog(“classpath:db.changelog.xml”)db.changelog.xml
文件中的code>和其他changelog文件,

配置文件夹不在资源中,因为命名问题,我必须将其保留在外部。您可以在我的问题中看到上面的层次结构,我有这个层次结构,我希望可以从Spring配置文件和
db.changelog.xml
访问
config
文件夹。我尝试过给出这些路径,还有这个
relativeToChangeLog
属性,它不起作用。在资源之外配置应该没问题,这只是配置spring的问题。Liquibase使用spring配置的ResourceLoader查找变更日志文件。您可以将其配置为在配置中与资源一起查看吗?配置文件夹不在资源中,因为命名问题,我必须将其保留在外部。您可以在我的问题中看到上面的层次结构,我有这个层次结构,我希望可以从Spring配置文件和
db.changelog.xml
访问
config
文件夹。我尝试过给出这些路径,还有这个
relativeToChangeLog
属性,它不起作用。在资源之外配置应该没问题,这只是配置spring的问题。Liquibase使用spring配置的ResourceLoader查找变更日志文件。您是否能够将其配置为与资源一起在配置中查看?