У меня есть мультимодульное приложение с весенней загрузкой, поддерживаемое maven. Существует родительский pom. xml, который определяет все зависимости. Есть 2 модуля A и B. Модуль B зависит от модуля A. Оба модуля являются приложениями с пружиной, и я переупаковал их как банки, чтобы работала взаимозависимость между модулями. Мое приложение работает нормально, но у меня возникла проблема при создании различий в базе данных. Мои модули A и B получили все доменные / спящие сущности. Родитель не имеет никакого кода. У него просто есть пом. 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
Когда я делаю mvn liquibase: diff из модуля B, я получаю (у меня определена зависимость в родительском 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]
Я не знаю, вызывает ли проблема реструктуризацию jar-файлов в родительском pom с помощью следующего кода, который заставил приложение работать.
<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>
A 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>
б пом. 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>