spring-boot mavenプラグインを使用して実行可能なjarをビルドします。 xmlファイルが実行時に正しく読み込まれるように、依存するjarの1つを解凍する必要があります。私はlibsの解凍に関する文書に従った。私はjarファイルの内容を確認し、開梱情報が瓶でエンコードされたことを確認しSpring Boot requiresUnpackが実行時にupackingしていません
<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>
:
$ 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内 "春ブート-libsの" ディレクトリを参照するには:
< groupIdをと<依存>として各ライブラリを指定しますと<のartifactId >があり、実行時に$ 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
誰もが私が間違ってやっている、または私は何かを誤解していますか見ていますか?
Ok - jarファイル内の各リソースがディスク上のファイルとして存在するように、jarファイルが "展開"されるとも考えました。だから、実際に "アンパック"が何を意味するのかが分かります。 jar内のリソースをファイルシステムに展開して直接読み込むことができますか? –
なぜそれをやりたいのか分かりませんが、ClassLoader.getResourceAsStream()を介してリソースにアクセスし、ファイルに書き出すことができます。 –
残念ながら、入れ子になったxmlドキュメントを再帰的に使用するインフラストラクチャを使用しています。含まれているすべてのドキュメントがファイルシステムに存在すると仮定しています。その事実を変えるために私ができることは何もありません。したがって、私は、これらのファイルをjarファイルから取り出し、ファイルシステムに置く必要があるということはありません。 –