Java 在Spring配置文件中分解文件路径
我的项目中有一个Spring配置java文件(即带有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文件访
@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查找变更日志文件。您是否能够将其配置为与资源一起在配置中查看?