Can';t使用父POM运行Liquibase Maven插件

Can';t使用父POM运行Liquibase Maven插件,maven,maven-plugin,liquibase,Maven,Maven Plugin,Liquibase,正在尝试将我的项目配置为与父POM一起使用Liquibase 父POM配置: <dependencies> <dependency> <groupId>org.liquibase</groupId> <artifactId>liquibase-maven-plugin</artifactId> <version>$

正在尝试将我的项目配置为与父POM一起使用Liquibase

父POM配置:

    <dependencies>  
        <dependency>
            <groupId>org.liquibase</groupId>
            <artifactId>liquibase-maven-plugin</artifactId>
            <version>${liquibase-plugin.version}</version>
        </dependency>
    </dependencies>
    <build>
        <pluginManagement>
                <plugin>
                    <groupId>org.liquibase</groupId>
                    <artifactId>liquibase-maven-plugin</artifactId>
                    <version>${liquibase-plugin.version}</version>
                    <configuration>
                 <propertyFileWillOverride>true</propertyFileWillOverride>
<propertyFile>src/main/resources/db/liquibase.properties</propertyFile>
                    </configuration>                    
                </plugin>
            </plugins>
        </pluginManagement>
    </build>
看起来maven或插件正在尝试解析父目录中的属性文件,这是不应该发生的。如果从父POM中删除propertyFile,则会出现另一个错误,即未指定属性文件

编辑1:我的项目结构

Parent POM
  -- project1 POM
  -- project2 POM
我想在Project2POM上运行Liquibase,它也配置了Liquibase依赖项和插件


如何配置它?

我想我知道发生了什么

当我命令mvn liquibase时:不管怎样,maven知道它将在当前POM中运行这个命令。这解释了为什么liquibase插件抱怨无法解析属性文件(因为super POM没有)

问题是我不能直接在子项目上运行maven,因为它依赖于父POM中列出的其他项目。Maven的选项——也可以是make和——projects,如果它不会再次引入同样的问题:Maven试图在父POM上运行liquibase


我找到的解决方案是运行mvn liquibase:whatever,使用Eclipse并标记选项“Resolve Workspace Artifacts”。在这种情况下,Eclipse不会尝试在任何其他项目中运行mvn liquibase,而是在我运行构建的子项目上运行它。

这个liquibase插件应该在哪里执行?在父项目中还是在子项目中?我认为propertyFile属性定义在哪里并不重要。Liquibase将尝试通过类加载(因此它需要在类路径上)或文件路径(如果类加载不起作用)加载它。“按文件路径”可以是绝对路径,也可以是相对于项目基本目录路径的路径。@LittleSanti我想在子项目中运行它。我编辑了我的问题,使结构更加清晰。我不能简单地在子项目上运行mvn liquibase:XXX,因为项目2依赖于要生成的项目1。@Jens属性文件位于project2目录的相对路径中,而不是父POM(正如在project2 POM中配置的那样)。如果我从父POM中删除propertyFile(在我看来,不存在是有道理的),Liquibase会说没有指定属性文件,并拒绝运行。很难说是什么出了问题。您是否知道您正在父pom中使用?也许你不需要孩子pom中的元素?或者你根本就不想在父母的pom中出现这种情况?
[ERROR] Failed to execute goal org.liquibase:liquibase-maven-plugin:3.4.1:generateChangeLog (default-cli) on project credisfera-middleware-parent: Failed to resolve the properties file. -> [Help 1]
Parent POM
  -- project1 POM
  -- project2 POM