我在使用Spring Boot和Maven时遇到了一些问题。
似乎<packaging>pom</packaging>
标签在添加到pom.xml
时,某种程度上使spring完全不知道父级applications.properties
配置文件。运行时,无论声明的属性如何,spring仍将显示标题和信息级别的日志记录。为什么会这样呢?有没有一种方法可以将这些属性添加到我的父级中,以便所有模块都可以在给定的配置下运行?这会成为反模式吗?
主类:
package com.example.app; //could also be inside the app-client module
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
application.properties:
spring.main.banner-mode=off
logging.level.root=info
(父)pom.xml:
<?xml version="1.0" encoding="UTF-8"?>
<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>
<packaging>pom</packaging>
<modules>
<module>app-client</module>
</modules>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.3.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.example.</groupId>
<artifactId>app</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>app</name>
<description>Demo app</description>
<properties>
<java.version>1.8</java.version>
</properties>
<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>
</project>
答案 0 :(得分:1)
我完全想指出Andy对您的问题的评论,如果您想将工件表示为某种模块容器,则使用packaging
类型pom
是合适的是基础项目,您在其中收集(子)模块的依赖项信息。
但是,您的案例中的@SpringBootApplication
向我们表明了您想要使用工件来运行业务代码。另一方面,这会导致packaging
类型,例如jar
或war
。将其切换为其中之一,一切应该正常运行。
有关更多信息,请另咨询Maven reference for packaging。