4

spring-boot mavenプラグインを介して実行可能なjarを構築しています。実行時にxmlファイルを適切に読み取れるように、依存jarの1つを解凍する必要があります。ライブラリの解凍に関するドキュメントに従いました。私のプラグイン構成は次のとおりです。

        <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            <executions>
                <execution>
                    <goals>
                        <goal>repackage</goal>
                    </goals>
                </execution>
            </executions>
            <configuration>
                <requiresUnpack>
                    <dependency>
                        <groupId>com.deep6analytics.pipeline</groupId>
                        <artifactId>pipeline-services-ctakes</artifactId>
                    </dependency>
                </requiresUnpack>
            </configuration>
        </plugin>
    </plugins>

jar の内容を確認し、解凍情報が jar にエンコードされていることを確認しました。

$ zipnote target/pipeline-apps-annotation-server-1.0-SNAPSHOT.jar | grep -C 1 UNPACK
@ BOOT-INF/lib/pipeline-services-ctakes-1.0-SNAPSHOT.jar
UNPACK:1e6eda0ca9f1b740c4aba6058cac74a5084f1706
@ (comment above this line)

ドキュメントによると、実行時に、$TMPDIR 内に「spring-boot-libs」ディレクトリが表示されることを期待していました。

各ライブラリを <groupId> と <artifactId> で <dependency> として指定すると、実行時に $TMPDIR/spring-boot-libs に展開されます。

ただし、アプリケーションを実行すると、$TMPDIR を確認すると、解凍されたディレクトリが表示されません。その結果、アプリケーションが起動しません:

ls -la $TMPDIR

drwxr-xr-x    3  staff      102 Aug 10 23:40 pipeline-apps-annotation-server-1.0-SNAPSHOT.jar-spring-boot-libs-96fe7360-b23b-4caa-a2ce-75aa0300a417
drwxr-xr-x    3  staff      102 Aug 10 23:27 pipeline-apps-annotation-server-1.0-SNAPSHOT.jar-spring-boot-libs-a06a2373-0694-42e9-bee1-29191b3b764a
drwxr-xr-x    4  staff      136 Aug 10 20:54 sp_update
drwx------    2  staff       68 Aug 10 11:30 ssh-azEJDYkZH6ho
drwxr-xr-x    3  staff      102 Aug 10 15:05 tomcat.104726406473930572.8085
drwxr-xr-x    3  staff      102 Aug 10 23:38 tomcat.1527552147767629466.8080
drwxr-xr-x    3  staff      102 Aug 10 23:13 tomcat.1546871599966723864.8080

誰かが私が間違っていることを見ていますか、それとも私は何かを誤解していますか?

4

2 に答える 2

4

ドキュメントは少し誤解を招くものです。解凍されたディレクトリは次のとおりです。

drwxr-xr-x    3  staff      102 Aug 10 23:40 pipeline-apps-annotation-server-1.0-SNAPSHOT.jar-spring-boot-libs-96fe7360-b23b-4caa-a2ce-75aa0300a417
drwxr-xr-x    3  staff      102 Aug 10 23:27 pipeline-apps-annotation-server-1.0-SNAPSHOT.jar-spring-boot-libs-a06a2373-0694-42e9-bee1-29191b3b764a

これらのディレクトリには、実行可能 jar から解凍する必要があるとマークした jar ファイルが含まれている必要があります。

ドキュメントを修正するためにイシューをオープンしました。

于 2016-08-11T15:27:18.723 に答える
0

Linux では /tmp フォルダです。この変数: $TMPDIR は機能しませんでした

于 2020-02-05T17:14:59.330 に答える