복붙노트

[SPRING] JSP 및 정적 리소스를 포함한 스프링 부팅 응용 프로그램 패키지

SPRING

JSP 및 정적 리소스를 포함한 스프링 부팅 응용 프로그램 패키지

항아리로 봄 부팅 응용 프로그램을 패키지화하고 싶습니다. mvn 패키지를 사용합니다.

그러면 / WEB-INF / jsp 또는 / src / main / webapp / resources가 포함되지 않은 jar 파일이 생성됩니다.

항아리에 필요한 모든 것이 포함되어 있는지 어떻게 확인할 수 있습니까?

여기 내 현재 pom.xml :

<modelVersion>4.0.0</modelVersion>

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-samples</artifactId>
    <version>1.0.0.RC3</version>
</parent>

<packaging>jar</packaging>

<properties>
    <main.basedir>${basedir}/../..</main.basedir>
    <m2eclipse.wtp.contextRoot>/</m2eclipse.wtp.contextRoot>
</properties>

<dependencies>

    <dependency>
        <groupId>${project.groupId}</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>

    <dependency>
        <groupId>${project.groupId}</groupId>
        <artifactId>spring-boot-starter-tomcat</artifactId>
        <scope>provided</scope>
    </dependency>

    <dependency>
        <groupId>org.apache.tomcat.embed</groupId>
        <artifactId>tomcat-embed-jasper</artifactId>
        <scope>provided</scope>
    </dependency>
    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>jstl</artifactId>
    </dependency>

    <dependency>
        <groupId>commons-dbcp</groupId>
        <artifactId>commons-dbcp</artifactId>
    </dependency>

    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-jdbc</artifactId>
    </dependency>

    <dependency>
        <groupId>org.apache.tomcat</groupId>
        <artifactId>tomcat-jdbc</artifactId>
    </dependency>

    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-tx</artifactId>
    </dependency>

    <dependency>
        <groupId>org.postgresql</groupId>
        <artifactId>postgresql</artifactId>
        <version>9.3-1101-jdbc41</version>
    </dependency>

</dependencies>

<!-- Package as an executable JAR -->
<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-surefire-plugin</artifactId>
            <configuration>
                <useSystemClassLoader>false</useSystemClassLoader>
            </configuration>
        </plugin>
    </plugins>
</build>

<!-- Allow access to Spring milestones and snapshots -->
<!-- (you don't need this if you are using anything after 1.0.0.RELEASE) -->
<repositories>
    <repository>
        <id>spring-snapshots</id>
        <url>http://repo.spring.io/snapshot</url>
        <snapshots>
            <enabled>true</enabled>
        </snapshots>
    </repository>
    <repository>
        <id>spring-milestones</id>
        <url>http://repo.spring.io/milestone</url>
        <snapshots>
            <enabled>true</enabled>
        </snapshots>
    </repository>
</repositories>
<pluginRepositories>
    <pluginRepository>
        <id>spring-snapshots</id>
        <url>http://repo.spring.io/snapshot</url>
    </pluginRepository>
    <pluginRepository>
        <id>spring-milestones</id>
        <url>http://repo.spring.io/milestone</url>
    </pluginRepository>
</pluginRepositories>
<artifactId>com.example.app</artifactId>

해결법

  1. ==============================

    1.다음 예제는 Spring Boot 1.3.3에서 작동합니다. 릴리스 : https://github.com/ghillert/spring-boot-jsp-demo

    다음 예제는 Spring Boot 1.3.3에서 작동합니다. 릴리스 : https://github.com/ghillert/spring-boot-jsp-demo

    핵심은 정적 JSP 컨텐츠를 넣는 것입니다.

    /src/main/resources/META-INF/resources/WEB-INF/jsp
    

    application.properties에서보기 접두어 / 접미사를 정의했는지 확인하십시오.

    spring.mvc.view.prefix=/WEB-INF/jsp/
    spring.mvc.view.suffix=.jsp
    
  2. ==============================

    2.전쟁 포장 유형을 사용할 수없는 이유가 있습니까? https://maven.apache.org/plugins/maven-war-plugin/usage.html war 패키징 유형을 사용하고 기본 maven 웹 응용 프로그램 구조를 사용하는 것이 좋습니다.

    전쟁 포장 유형을 사용할 수없는 이유가 있습니까? https://maven.apache.org/plugins/maven-war-plugin/usage.html war 패키징 유형을 사용하고 기본 maven 웹 응용 프로그램 구조를 사용하는 것이 좋습니다.

    웹 애플리케이션에 jar 플러그인을 사용하려면 프로젝트에 맞게 플러그인을 구성해야합니다. 귀하의 게시로 인해 귀하의 구조를 이해하지 못해 귀하에게 사례를 드릴 수 없습니다. jar 플러그인의 사용법은 https : //maven.apache.org/plugins/maven-war-plugin/usage.html에서 확인하십시오.

  3. ==============================

    3.빌드 태그를 다음으로 변경하십시오.

    빌드 태그를 다음으로 변경하십시오.

     <build>
    <resources>
                <resource>
                    <directory>${basedir}/src/main/webapp</directory>
                    <includes>
                        <include>**/**</include>
                    </includes>
                </resource>
                <resource>
                    <directory>${basedir}/src/main/resources</directory>
                    <includes>
                        <include>**/**</include>
                    </includes>
                </resource>
            </resources>
            <plugins>
                <plugin>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-maven-plugin</artifactId>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-surefire-plugin</artifactId>
                    <configuration>
                        <useSystemClassLoader>false</useSystemClassLoader>
                    </configuration>
                </plugin>
            </plugins>
        </build>
    
  4. ==============================

    4.Spring 부트로 실행 가능한 JAR을 생성하려면, pom.xml에 spring-boot-maven-plugin을 사용하십시오

    Spring 부트로 실행 가능한 JAR을 생성하려면, pom.xml에 spring-boot-maven-plugin을 사용하십시오

    <build>
    <plugins>
        <plugin>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
    </plugins>
    </build>
    

    어쩌면 내 예제 응용 프로그램을보고 싶을 것입니다. http://info.michael-simons.eu/2014/02/20/developing-a-web-application-with-spring-boot-angularjs-and-java-8 / (출처는 GitHub에 있으며, App은 라이브이며 JAR에서 실행됩니다.)

    한 가지주의해야 할 점은 JAR의 JSP는 Tomcat의 일부 내장 된 문제로 인해 작동하지 않는다는 것입니다. 나는 Thymeleaf를 사용하고 있습니다. JSP가 필요하면 WAR 배포를 유지하십시오.

  5. from https://stackoverflow.com/questions/22121918/package-a-spring-boot-application-including-jsps-and-static-resources by cc-by-sa and MIT license