- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我已经完成了研究,但我真的无法让它发挥作用。我正在使用 Spring Boot 和 Maven。我的前端使用 Thymeleaf 和 jquery。
我的目录:
project-system/
├── mvnw
├── mvnw.cmd
├── pom.xml
├── src
│ ├── main
│ │ ├── java
│ │ │ └── rigor
│ │ │ └── io
│ │ │ └── projectsystem
│ │ │ ├── rush
│ │ │ │ ├── TemporaryController.java
│ │ │ └── ProjectSystemApplication.java
│ │ └── resources
│ │ ├── application.properties
│ │ ├── MOCK_DATA.json
│ │ ├── static
│ │ └── templates
│ │ ├── index.html
│ │ └── records.html
在TemporaryController
内,我正在执行此操作:
list = new ObjectMapper().readValue(new File("./src/main/resources/MOCK_DATA.json"), new TypeReference<List<POJO>>() {});
这样,我就可以访问 resources
目录下的 MOCK_DATA.json
了。
但是现在,我想将它打包到一个 jar 中。这对我来说有点麻烦。这是我在 pom
文件中的构建:
<build>
<plugins>
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<version>2.6</version>
<executions>
<execution>
<id>copy-resources</id>
<phase>validate</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<outputDirectory>${basedir}/target/classes/src/main</outputDirectory>
<includeEmptyDirs>true</includeEmptyDirs>
<resources>
<resource>
<directory>${basedir}/src/main/</directory>
<filtering>false</filtering>
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<archive>
<manifest>
<addClasspath>true</addClasspath>
<classpathPrefix>lib/</classpathPrefix>
<mainClass>rigor.io.projectsystem.ProjectSystemApplication</mainClass>
</manifest>
</archive>
</configuration>
</plugin>
</plugins>
</build>
这给我的结果target
目录是:
├── target
│ ├── classes
│ │ ├── application.properties
│ │ ├── MOCK_DATA.json
│ │ ├── rigor
│ │ │ └── io
│ │ │ └── projectsystem
│ │ │ ├── rush
│ │ │ │ ├── TemporaryController.class
│ │ │ └── ProjectSystemApplication.class
│ │ ├── src
│ │ │ └── main
│ │ │ ├── java
│ │ │ │ └── rigor
│ │ │ │ └── io
│ │ │ │ └── projectsystem
│ │ │ │ ├── rush
│ │ │ │ │ ├── TemporaryController.java
│ │ │ │ └── ProjectSystemApplication.java
│ │ │ └── resources
│ │ │ ├── application.properties
│ │ │ ├── MOCK_DATA.json
│ │ │ ├── static
│ │ │ └── templates
│ │ │ ├── index.html
│ │ │ └── records.html
│ │ └── templates
│ │ ├── index.html
│ │ └── records.html
│ ├── generated-sources
│ │ └── annotations
│ ├── generated-test-sources
│ │ └── test-annotations
│ ├── maven-archiver
│ │ └── pom.properties
│ ├── maven-status
│ │ └── maven-compiler-plugin
│ │ ├── compile
│ │ │ └── default-compile
│ │ │ ├── createdFiles.lst
│ │ │ └── inputFiles.lst
│ │ └── testCompile
│ │ └── default-testCompile
│ │ ├── createdFiles.lst
│ │ └── inputFiles.lst
│ ├── surefire-reports
│ │ ├── rigor.io.projectsystem.ProjectSystemApplicationTests.txt
│ │ └── TEST-rigor.io.projectsystem.ProjectSystemApplicationTests.xml
│ ├── test-classes
│ │ └── rigor
│ │ └── io
│ │ └── projectsystem
│ │ ├── ProjectSystemApplicationTests$1.class
│ │ └── ProjectSystemApplicationTests.class
│ ├── project-system-0.0.1-SNAPSHOT.jar
│ └── project-system-0.0.1-SNAPSHOT.jar.original
如您所见,发生了一些冗余,当我尝试运行 jar 文件时,它给了我一个 java.io.FileNotFoundException: ./src/main/resourfces/MOCK_DATA.json (没有这样的文件或目录)
最佳答案
您不能将内部 jar 资源视为常规文件,您需要要求类加载器为您执行此操作,并且路径将相对于 jar 的顶层(因此您只想要求类加载器加载“MOCK_DATA.jar”)。 json”,没有任何路径),或/resources 文件夹。操作方法如下:
顺便说一句。/src/main/resources 文件夹在 Maven 中是自动的,除非您需要配置过滤等默认值:)关于java - 访问maven生成的jar中资源目录中的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53827709/
我从 http://alchim31.free.fr/m2e-scala/update-site/ 安装了 Maven Scala 支持,以及使用 Eclipse Marketplace 的 Scal
我正在尝试将 sbt 与 IntelliJ Idea 一起使用。当sbt 0.13.8刷新项目时,会在src/main->'scala'和'scala-2.11'下创建两个scala源码目录 我的 S
我有一个 Maven 项目(在 Eclipse 中使用 m2eclipse 插件),它包含两种不同语言(Java 和 Clojure)的代码。 理想情况下,我想要两种语言的两个单独的源文件夹: 源代码
我正在尝试将 Cordova 3.4 与 AngularJS 结合使用。我关注了this tutorial有时它要求我更改 ant.properties 文件中的 html.source.dir 和
在 Eclipse 平台(Windows 10,MinGW 工具链)中,我正在尝试创建一个生成文件来编译带有 .cpp 和 .hpp 文件的项目。 为此,我选择创建一个新项目: 文件-> (弹出)新项
我有一个项目,其中 Java 源代码未处于 Gradle 期望的标准位置。 如何将 Gradle 指向正确的目录? 最佳答案 如果 src/main/java 中没有源代码,那么这样做会更正确 sou
我有一个旧的 Web 应用程序项目。然后我添加了pom.xml,并添加了maven-war-plugin。在旧项目中,源代码位于 “Java Resources/src” 目录中。 在我的 maven
我正在尝试使用 Lombok Maven Plugin以确保在使用 Lombok 时正确创建 Javadocs . Lombok Maven 在编译之前引入了一个新的代码生成目标。在我的配置中,我的
我使用的库的构建过程不会将源 Artifact 部署到它所在的 Maven 存储库。修改构建过程超出了我的控制范围。 但是,我可以访问该库的 git 存储库(及其源代码)。我还可以将此存储库克隆到我的
我是一名优秀的程序员,十分优秀!