Zajmuję się tworzeniem projektu wielomodułowego w Spring Boot gdzie struktura projektu jest następujący:Dostępu rodzica z projektem zależnej w bagażniku wiosennej
com.app.parent <- parent pom with version numbers and common dependencies (POM)
com.app.core <- repository and service layer, models, DTOs (JAR)
com.app.rest <- rest API (WAR)
com.app.soap <- soap API (WAR)
Plik pom.xml
dla dominującej projektu :
<artifactId>app-parent</artifactId>
<packaging>pom</packaging>
<name>app-parent</name>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.3.RELEASE</version>
<relativePath/>
</parent>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
plik pom.xml
dla rdzenia projektu jest:
<artifactId>app-core</artifactId>
<packaging>jar</packaging>
<name>app-core</name>
<parent>
<groupId>com.app</groupId>
<artifactId>app-parent</artifactId>
<version>0.0.1-SNAPSHOT</version>
<relativePath>../app-parent/pom.xml</relativePath>
</parent>
<dependencies>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
</dependencies>
pom.xml
dla odpoczynku projektu jest:
<artifactId>app-rest</artifactId>
<packaging>war</packaging>
<name>app-rest</name>
<parent>
<groupId>com.app</groupId>
<artifactId>app-parent</artifactId>
<version>0.0.1-SNAPSHOT</version>
<relativePath>../app-parent/pom.xml</relativePath>
</parent>
<dependencies>
<dependency>
<groupId>com.app</groupId>
<artifactId>app-core</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
Punkt wejścia do app-rdzeniowego projektu jest:
@SpringBootApplication
public class CoreApplication {
public static void main(String[] args) {
SpringApplication.run(CoreApplication.class, args);
}
}
Punkt wejścia do App-reszta projekt wygląda dokładnie tak samo.
Utworzono plik application.properties
w obrębie core/src/main/resources/
, który zawiera konfigurację bazy danych itp. I mogę skompilować/przetestować projekt z rdzeniem aplikacji. Jednak, gdy próbuję uruchomić lub testowania aplikacji, reszta projektu pojawiają się błędy związane z brakiem application.properties
pliku
Nie można określić osadzone klasę sterownika bazy danych dla bazy danych typu NONE. Jeśli chcesz osadzoną bazę danych, umieść obsługiwaną w ścieżce klas.
Jak uzyskać projekt podrzędny, aby załadować plik rodzica application.properties
? Czy muszę utworzyć dowiązanie symboliczne do pliku nadrzędnego, czy też wyraźnie załadować plik właściwości rodzica poprzez @PropertySource
? Co robią inni w tym scenariuszu?