how to include static files in jar(如何在JAR中包含静态文件)
问题描述
我有一个ant构建,它只生成一个装满html页面的JAR。我也想用maven做同样的事情。我目前正在将文件复制到一个新文件夹中,但这些文件并没有添加到最终的JAR中。当我运行命令jar tf mavenjar.jar
我没有看到我的终端中列出的文件。看起来是这样的:
click here
当我在Ant生成的JAR上运行相同的命令时,我看到以下内容:
click here
这是我的POM
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>try1</groupId>
<artifactId>try1</artifactId>
<version>0.0.1-SNAPSHOT</version>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
</plugin>
</plugins>
<finalName>mavenjar</finalName>
<resources>
<resource>
<directory>${basedir}/moveTheseFiles</directory>
<targetPath>${basedir}/newFileLocation</targetPath>
<filtering>false</filtering>
</resource>
</resources>
</build>
</project>
您知道要将移动到JAR的文件包括在内可能会遗漏什么内容吗?
推荐答案
有两种方法可以实现这一点。遵循有关配置的约定-或对其进行配置。
约定重于配置
将静态文件复制到JAR中的最简单方法是使用默认文件夹。您在那里添加的所有文件都将添加到您的JAR文件中。您的pom.xml可以简化为:<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>try1</groupId>
<artifactId>try1</artifactId>
<version>0.0.1-SNAPSHOT</version>
<build>
<finalName>mavenjar</finalName>
</build>
</project>
非默认文件夹
当您确实需要将文件放在另一个文件夹中时,您的配置几乎是正确的。只缺少includes
部分。您必须告诉Maven包含指定文件夹中的所有文件。
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>try1</groupId>
<artifactId>try1</artifactId>
<version>0.0.1-SNAPSHOT</version>
<build>
<finalName>mavenjar</finalName>
<resources>
<resource>
<directory>moveTheseFiles</directory>
<includes>
<include>**/*</include>
</includes>
<filtering>false</filtering>
</resource>
</resources>
</build>
</project>
注意:您似乎要创建一个Web应用程序。也许您想创建一个war
文件。要实现这一点,您只需设置
<packaging>war</packaging>
在pom.xml中。然后是所有网络资源(HTMLPages、CSS...)应位于src/main/webapp
下,并将被复制到WAR的根文件夹中。请注意,src/main/resources
中的文件将被复制到生成的WAR中的WEB-INF/classes
。
这篇关于如何在JAR中包含静态文件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:如何在JAR中包含静态文件
基础教程推荐
- 如何在不安装整个 WTP 包的情况下将 Tomcat 8 添加到 Eclipse Kepler 2022-01-01
- 由于对所需库 rt.jar 的限制,对类的访问限制? 2022-01-01
- 如何对 HashSet 进行排序? 2022-01-01
- Spring Boot Freemarker从2.2.0升级失败 2022-01-01
- 在螺旋中写一个字符串 2022-01-01
- 如何强制对超级方法进行多态调用? 2022-01-01
- Java 中保存最后 N 个元素的大小受限队列 2022-01-01
- 首次使用 Hadoop,MapReduce Job 不运行 Reduce Phase 2022-01-01
- 如何使用 Stream 在集合中拆分奇数和偶数以及两者的总和 2022-01-01
- 如何使用 Eclipse 检查调试符号状态? 2022-01-01