本文介紹了如何在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中包含靜態文件的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,