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中包含静态文件
- GC_FOR_ALLOC 是否更“严重"?在调查内存使用情况时? 2022-01-01
- 转换 ldap 日期 2022-01-01
- java.lang.IllegalStateException:Bean 名称“类别"的 BindingResult 和普通目标对象都不能用作请求属性 2022-01-01
- 在 Java 中,如何将 String 转换为 char 或将 char 转换 2022-01-01
- 如何使 JFrame 背景和 JPanel 透明且仅显示图像 2022-01-01
- 获取数字的最后一位 2022-01-01
- 未找到/usr/local/lib 中的库 2022-01-01
- 将 Java Swing 桌面应用程序国际化的最佳实践是什么? 2022-01-01
- Eclipse 的最佳 XML 编辑器 2022-01-01
- 如何指定 CORS 的响应标头? 2022-01-01