簡體   English   中英

Spring Boot Mac:找不到jar

[英]Spring boot mac: jar not found

我目前正在嘗試以一種舊的方式容器化Spring Boot應用程序。 我想使用maven命令構建項目,將jar(及其依賴項)復制到容器中,然后使用嵌入式Tomcat運行Jar。

到目前為止,我已經編寫了一個maven配置文件來編譯我的代碼並構建一個jar。 在罐子里放着所有依賴罐子。 完善!

當我嘗試通過cli手動運行jar時,不幸的事情發生了。 CLI抱怨說缺少一個依賴項jar,但是在解壓縮和挖掘父jar本身之后,情況似乎並非如此。

請允許我進一步細分一下:

這是我的Maven個人資料:

<profile>
            <id>docker</id>
            <activation>
                <activeByDefault>false</activeByDefault>
            </activation>
            <properties>
                <packaging.type>jar</packaging.type>
                <log.dir>logs</log.dir>
                <!-- updates bootstrap.properties -->
                <config.override.path>./conf</config.override.path> <!-- "file:" cannot be used with relative path (not a valid URI, y'all) -->
            </properties>
            <build>
                <plugins>
                    <plugin>
                        <artifactId>maven-assembly-plugin</artifactId>
                        <configuration>
                            <archive>
                                <manifest>
                                    <mainClass>fully.qualified.MainClass</mainClass>
                                </manifest>
                            </archive>
                            <descriptorRefs>
                                <descriptorRef>jar-with-dependencies</descriptorRef>
                            </descriptorRefs>
                        </configuration>
                    </plugin>
                </plugins>
            </build>
        </profile>

這是我用來運行內置Jar的命令:

java -jar target/the-jar-1.0.0-SNAPSHOT.jar

最后,這是錯誤:

java.io.FileNotFoundException: target/the-jar-1.0.0-SNAPSHOT.jar!/BOOT-INF/lib/the-missing-jar-1.0.0-SNAPSHOT.jar (No such file or directory)

我解壓縮了“ the-jar”,只是找到了在其適當位置的“ the-missing-jar”。 不僅如此,當我在IDE(IntelliJ)中啟動父級Jar時,它可以很好地工作。

我在這里缺少什么嗎? 我應該采用其他方法嗎? 我覺得我現在太近了,無法退出。


更新:在一些人的建議下,我更改了構建配置文件。 我同意這是一種更好的方法,但它並沒有改變結果。 我在嘗試執行uber jar時仍未找到關於jar的相同的特定錯誤。

<profile>
    <id>docker</id>
    <activation>
        <activeByDefault>false</activeByDefault>
    </activation>
    <properties>
        <packaging.type>jar</packaging.type>
        <log.dir>logs</log.dir>
        <!-- updates bootstrap.properties -->
        <config.override.path>./conf</config.override.path> <!-- "file:" cannot be used with relative path (not a valid URI, y'all) -->
    </properties>
    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>
</profile>

無需手動包裝彈簧靴應用程序。

您可以讓spring-boot-maven-plugin為您正確構建它。

您需要添加

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

到您的Maven項目,您將可以通過執行以下命令來正確打包“ uber-jar”:

mvn package

這是構建可執行jar的spring-boot建議方法。

您可以在文檔中找到更多詳細信息,包括可運行的示例。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM