1

我有一个由 Maven 支持的多模块 Spring Boot 应用程序。有一个父 pom.xml 定义了所有依赖项。有 2 个模块 A 和 B。模块 B 依赖于模块 A。这两个模块都是 spring 应用程序,我已将它们重新打包为 jar,以便模块之间的相互依赖关系可以工作。我的应用程序运行良好,但是在生成 liquibase 差异时遇到了问题。我的模块 A 和 B 拥有所有域/休眠实体。父级没有任何代码。它只有 pom.xml。

当我从父级执行 mvn liquibase:diff 时,我得到

Error setting up or running Liquibase: javax.persistence.PersistenceException: Unable to resolve persistence unit root URL: class path resource [] cannot be resolved to URL because it does not exist

当我从模块 B 执行 mvn liquibase:diff 时,我得到(我在父 pom 中定义了依赖项)

 Failed to execute goal org.liquibase:liquibase-maven-plugin:3.5.5:diff (default-cli) on project leave: Execution default-cli of goal org.liquibase:liquibase-maven-plugin:3.5.5:diff failed: Plugin org.liquibase:liquibase-maven-plugin:3.5.5 or one of its dependencies could not be resolved: Could not find artifact org.springframework.boot:spring-boot-starter-data-jpa:jar:1.0-SNAPSHOT -> [Help 1]

我不知道是否使用以下代码重组父 pom 中的 jar 以使应用程序正常工作是否会导致此问题。

 <plugin>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-maven-plugin</artifactId>
                    <executions>
                        <execution>
                            <id>repackage</id>
                            <configuration>
                                <classifier>exec</classifier>
                            </configuration>
                        </execution>
                    </executions>
                </plugin>

父 POM.xml,它有一些所有依赖项和插件的列表

<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>org.xxx</groupId>
    <artifactId>parent</artifactId>
    <version>1.0-SNAPSHOT</version>
    <packaging>pom</packaging>

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.2.4.RELEASE</version>
    </parent>

    <modules>
        <module>A</module>
        <module>B</module>
    </modules>

一个 Pom.xml

         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.xxx</groupId>
        <artifactId>parent</artifactId>
        <version>1.0-SNAPSHOT</version>
    </parent>


    <artifactId>A</artifactId>
    <packaging>jar</packaging>
    <properties>
        <java.version>1.8</java.version>
    </properties>
</project>

b Pom.xml

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.xxx</groupId>
        <artifactId>parent</artifactId>
        <version>1.0-SNAPSHOT</version>
    </parent>
    <artifactId>B</artifactId>
    <packaging>jar</packaging>
    <properties>
        <java.version>1.8</java.version>
    </properties>

        <dependencies>
        <dependency>
            <groupId>org.xxx</groupId>
            <artifactId>A</artifactId>
            <version>1.0-SNAPSHOT</version>
            <scope>compile</scope>
        </dependency>
    </dependencies>
</project>
4

0 回答 0