Каталог Maven Pack с html-файлами в jar - PullRequest
0 голосов
/ 07 июля 2019

У меня есть простое веб-приложение со следующей структурой:

project structure

Мне нужно упаковать его в jar.Вот мой 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>

    <groupId>L1.1</groupId>
    <artifactId>L1.1</artifactId>
    <version>1.0</version>

    <properties>
        <maven.compiler.source>1.8</maven.compiler.source>
        <maven.compiler.target>1.8</maven.compiler.target>
    </properties>


    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.3</version>
            </plugin>
            <plugin>
                <artifactId>maven-assembly-plugin</artifactId>

                <configuration>
                    <descriptorRefs>
                        <descriptorRef>jar-with-dependencies</descriptorRef>
                    </descriptorRefs>
                    <outputDirectory>${basedir}</outputDirectory>
                    <finalName>server</finalName>
                    <appendAssemblyId>false</appendAssemblyId>
                    <archive>
                        <manifest>
                            <mainClass>main.Main</mainClass>
                        </manifest>
                    </archive>
                </configuration>
            </plugin>
        </plugins>

        <resources>
            <resource>
                <directory>templates</directory>
                <includes>
                    <include>page.html</include>
                </includes>
            </resource>
        </resources>

    </build>

    <dependencies>
        <dependency>
            <groupId>org.freemarker</groupId>
            <artifactId>freemarker</artifactId>
            <version>2.3.20</version>
        </dependency>

        <dependency>
            <groupId>org.eclipse.jetty</groupId>
            <artifactId>jetty-server</artifactId>
            <version>9.3.0.M0</version>
        </dependency>

        <dependency>
            <groupId>org.eclipse.jetty</groupId>
            <artifactId>jetty-webapp</artifactId>
            <version>9.3.0.M0</version>
        </dependency>

    </dependencies>

</project>

Я упаковываю его с опцией Maven assembly:single: maven option

Но когда я запускаю свое приложениес java -jar server.jar и передать запрос в браузер, я получаю:

java.io.FileNotFoundException: Template "templates/page.html" not found.

Это происходит потому, что папка templates с page.html в ней не добавляется в jar - я распаковал server.jar искалдля этого, но не нашел.

Я много гуглил что-то вроде "ресурсы maven pack в jar" или "html maven pack в jar".И самая близкая статья к моей проблеме была: https://maven.apache.org/plugins/maven-resources-plugin/examples/include-exclude.html

Я следовал инструкциям в этой статье - добавил <resources> и оставшиеся теги, где я выделил свою папку и файл, который я хочу включить в jar(см. это в pom.xml, которое я написал выше).

Но эта папка и page.html не добавляются.

Пожалуйста, сообщите мне, что я делаю неправильно икак добавить templates папку с page.html в нее в jar.

1 Ответ

0 голосов
/ 07 июля 2019

В моем случае Spring Framework имеет папку ресурсов под SRC .... И эта папка ресурсов содержит папку шаблонов.

Src->resource -> template  
...