我有一个SpringWeb应用程序,它是作为maven工件a.war创建的。它有一个maven依赖项和一个工件B.jar。工件B的src/main/resources有一个文件测试。txt。我想读一下测试文件。来自神器A.war的txt。当我引爆B.jar时,我看到了测试结果。jar的根位于txt中。在A中,我尝试使用文件f=new ClassPathResource(“test.txt”)读取该文件。getFile();
我得到java.io.FileNotFoundException:类路径资源[test.txt]无法解析为绝对文件路径,因为它不驻留在文件系统中:jar: B. jar!/test.txt.我还尝试了File f=new File(getClass(). getResources("test.txt"). toURI());
有人能帮忙吗?
您必须为类路径资源构建自己的类加载器,以便从JAR读取文件。
我在博客上解释了这一点(https://skmit.wordpress.com/2012/02/29/read-classpath-resource-from-jar-files-with-spring/)
我终于得到它的工作通过以下链接中提到的替代路径
基本上,在工件A的pom文件中,我使用了maven依赖插件和解包目标。使用它,我解包了工件B并复制了测试。txt到项目A的目标/类目录。
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution>
<id>unpack</id>
<phase>generate-sources</phase>
<goals>
<goal>unpack</goal>
</goals>
<configuration>
<artifactItems>
<artifactItem>
<groupId>com.me</groupId>
<artifactId>artifactB</artifactId>
<version>1.0-SNAPSHOT</version>
<outputDirectory>${basedir}/target/classes</outputDirectory>
<includes>*.txt,*.xml</includes>
</artifactItem>
</artifactItems>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
在构建工件A时,会创建war文件A.war并进行测试。txt出现在分解的war文件的WEB-INF/classes目录中,因此它位于类路径中。
在使用Maven捆绑JAR文件中的资源时,我有一种感觉,我错过了一些关键的东西。我的目录结构是标准的Maven结构(即\src\main\java,\src\main\Resources)。 使用IDE时,我将资源文件引用为\main\resources\images\blah。。。它工作得很好,但当Maven捆绑JAR文件时,它会将路径放在相对于根的位置(“\ images\blah”),因此没
如何从其 GitHub 存储库(该库使用 Maven 作为构建系统)添加 Java 库作为依赖项添加到我的 Maven 项目中?我可以在不下载和编译库的情况下执行此操作吗?
Spring靴-1.4.1;IDE-IntelliJ 2016.3。EAP 我试图加载资源如下; 和 当我从IDE运行应用程序时,这两种方法都可以正常工作,但当我尝试将应用程序构建为war并将其部署到Tomcat上时,这两种方法都不起作用。 有人能帮我解决这个问题吗? 谢谢
我正在使用Maven Shade插件在打包阶段包含所有依赖项。这适用于类,但不包括依赖资源。 以下是依赖罐的布局: 以下是阴影插件配置:
4.6 资源依赖 如果bean本身将通过某种动态过程来确定和提供资源路径,那么bean可以使用ResourceLoader接口来加载资源。 j假设以某种方式加载一个模板,其中需要的特定资源取决于用户的角色。 如果资源是静态的,那么完全消除ResourceLoader接口的使用是有意义的,只需让bean公开它需要的Resource属性,那么它们就会以你所期望的方式被注入。 什么使得它们轻松注入这些属
传统方式的导入外部JS和CSS文件的方法是直接在模板文件使用: <script type='text/javascript' src='/static/js/common.js'> <link rel="stylesheet" type="text/css" href="/static/css/style.css" /> 系统提供了专门的标签来简化上面的导入: {load href="/stati