스프링 부팅 애플리케이션을 배포하려면 web.xml이 필요합니까?
저는 전쟁으로 스프링 부트 애플리케이션을 패키지화하려고 했습니다.이에 따라 애플리케이션 클래스를 수정했습니다.
@SpringBootApplication
@EntityScan({"org.mdacc.rists.cghub.model"})
@EnableJpaRepositories(basePackages = {"org.mdacc.rists.cghub.ws.repository"})
public class Application extends SpringBootServletInitializer
{
public static void main( String[] args )
{
SpringApplication.run(Application.class, args);
}
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
return application.sources(Application.class);
}
}
또한 내 pom.xml에 다음 사항을 추가했습니다.
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
프로젝트를 패키지화할 때 다음 오류가 발생했습니다.
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-war-plugin:2.2:war (default-war) on project cg-web: Error assembling WAR: webxml attribute is required (or pre-existing WEB-INF/web.xml if executing in update mode) -> [Help 1]
스프링 부트 애플리케이션을 읽다가 web.xml을 만드는 것에 대해 아무것도 보지 못했습니다.war로 스프링 부트 애플리케이션을 배포하려면 web.xml이 필요합니까?
이 답변에 따르면 Maven은 pom.xml에 다음 스니펫을 추가하여 web.xml 부재를 무시합니다.
<plugin>
<artifactId>maven-war-plugin</artifactId>
<version>2.6</version>
<configuration>
<failOnMissingWebXml>false</failOnMissingWebXml>
</configuration>
</plugin>
웹 종속성이 있습니까?
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
구성이 필요한 경우 언제든지 web.xml을 저장할 수 있습니다. 파일을 WEB-INF 내의 올바른 폴더에 저장하면 봄에 해당 파일을 가져가서 구성을 읽을 수 있습니다.또한 포장을 다음으로 변경합니다.
<packaging>war</packaging>
봄 부츠에 부모 폼을 사용하는 것을 고려합니다.
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.3.2.RELEASE</version>
</parent>
이 구성
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
서블릿 공급자와의 간섭을 피하기 위해 전쟁 파일에 Tomcat 종속성을 포함하지 말라고 Maven에게만 말합니다.
당신은 실제로 필요하지 않습니다.web.xml
생성할 파일WAR
배포할 준비가 되었습니다.구축 방법은 다음과 같습니다.Spring Boot
Gradle을 사용한 기반 아티팩트.
build.gradle:
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath "org.springframework.boot:spring-boot-gradle-plugin:1.3.3.RELEASE"
}
}
apply plugin: 'war'
apply plugin: 'spring-boot'
repositories {
mavenCentral()
}
dependencies {
compile "org.springframework.boot:spring-boot-starter-web:1.3.3.RELEASE"
//Allows to run spring boot app on standalone Tomcat instance
providedRuntime "org.springframework.boot:spring-boot-starter-tomcat:1.3.3.RELEASE"
}
구축하기 위해WAR
실행해야 합니다.
gradle war
서블릿 2.5 사양(java EE 5)에서는 web.xml이 필수이고, 서블릿 사양 3+(java EE 6)에서는 web.xml을 제거하고 주석 구성을 대신 사용할 수 있습니다.
언급URL : https://stackoverflow.com/questions/36315591/is-web-xml-required-to-deploy-a-spring-boot-application
'prosource' 카테고리의 다른 글
암호 없이 PS 자격 증명 만들기 (0) | 2023.08.01 |
---|---|
MySQL에서 결과 집합을 연결하려면 어떻게 해야 합니까? (0) | 2023.07.27 |
npm을 통해 설치된 노드 모듈을 편집하려면 어떻게 해야 합니까? (0) | 2023.07.27 |
sql 중첩된 대/소문자 문장 (0) | 2023.07.27 |
파워셸에서 XML을 통해 반복하는 방법은 무엇입니까? (0) | 2023.07.27 |