我有一个spring项目,它被编译成一个jar文件。让我们称这个项目为A. 还有另一个项目B,它是项目A的依赖项。我对项目B没有任何控制。项目B以两个文件的形式提供。 一个是可执行jar文件,另一个是zip文件。此zip文件包含项目的所有资源。 要从B调用API,我需要传递 resourceLocation 参数(它是上述资源文件夹的url)。 我把B.jar和B.zip都包含在我的A> pom中作为依赖。
现在,我为项目A创建了一个可执行jar-with-all-dependencies。 与其他依赖项一起,来自B.zip的资源文件夹存在于我的jar中。
现在问题: 从A内部调用B的API时,我应该提供什么 resourcePath 。 我试过了 。和./resources。但是B并没有得到它。如何获取资源文件夹的绝对路径并将其提供给B.或者为A和B设置公共类路径。
答案 0 :(得分:1)
您可以尝试将maven-dependency-plugin解压缩到classpath unpack依赖zip资源文件夹,它会将工件添加到A
的类路径中<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>2.2</version>
<executions>
<execution>
<id>unpack-sigar</id>
<phase>package<!-- or any other valid maven phase --></phase>
<goals>
<goal>unpack-dependencies</goal>
</goals>
<configuration>
<includeGroupIds>somegroupid</includeGroupIds>
<includeArtifactIds>B</includeArtifactIds>
<outputDirectory>
${project.build.directory}/src/main/resources
</outputDirectory>
</configuration>
</execution>
</executions>
</plugin>