2013-03-28 187 views
5

我有一個嵌入式碼頭(版本8.1.8)的Web應用程序,我打包成一個jar,並使用JSP作爲它的前端。它使用maven版本3.0.3構建。問題是,當我這樣做時:mvn package它包括除* * .jsp文件之外的所有內容。我試圖將他們重新安置在許多不同的地方,但沒有運氣。爲什麼maven不在我的jar包中包含JSP文件?

我試圖將<include>src/main/java/**/*.jsp</include>添加到我的pom的maven-compiler-plugin部分。但是那也沒有效果。

有沒有辦法可以確定jsp文件包含在內?

+0

你使用'行家罐子plugin'或'行家戰爭plugin'到創建jar文件? – 2013-03-28 05:31:07

+0

我正在使用'maven-jar-plugin' – klactose 2013-03-28 05:36:08

回答

10

我的解決辦法是把JSP文件添加爲src /主/ web應用,並在POM文件中添加以下代碼片段:

<build> 
    <resources> 
     <resource> 
     <directory>src/main/webapp</directory> 
     </resource> 
     ... 
    </resources> 
    ... 
</build> 
4

嘗試把.JSP到的src/main /資源,Maven的忽略所有,但.java文件的src/main/java的

+0

嗯,試過了。沒有出現src/main/resources目錄被添加到jar中。我使用jar命令檢查內容 – klactose 2013-03-28 05:00:45

+0

使用'$ mvn clean package'創建jar文件,然後測試它的內容。您配置的插件之一導致了您所看到的問題。從沒有''開始,然後將每個插件添加回來,直到它再次中斷。然後修復該特定插件的配置。 – 2013-03-28 14:14:19

+0

所以爲了得到在src /主/資源文件夾在我的罐子裏顯示我其實是有到該文件夾​​添加到聚甲醛,像這樣: '的src/main /資源 ...' – klactose 2013-03-29 00:22:35

0

Usage:How to include/exclude content from jar artifact給了我們如下: -

指定列表fileset patterns將被納入或排除,在您的pom.xml中加入<includes>/<include><excludes>/<exclude>

<project> 
    ... 
    <build> 
    <plugins> 
     ... 
     <plugin> 
     <groupId>org.apache.maven.plugins</groupId> 
     <artifactId>maven-jar-plugin</artifactId> 
     <version>2.4</version> 
     <configuration> 
      <includes> 
      <include>**/service/*</include> 
      </includes> 
     </configuration> 
     </plugin> 
     ... 
    </plugins> 
    </build> 
    ... 
</project> 

我希望這可以幫助。

+0

這還沒有完成......我的index.jsp文件位於src/main/java文件夾,所以我想' src/main/java/*。jsp'應該可以......但它不會。 – klactose 2013-03-28 06:41:38

+0

我非常抱歉,因爲我的回答不正確。我沒有注意到它是一個回合* .jsp。請使用@Evgeniy Dorofeev的解決方案。我測試過了。 src/main/resources中的index.jsp被複制到jar文件中。 – 2013-03-28 07:07:09

+0

很奇怪。只需將index.jsp添加到src/main/resources不會將該文件添加到我的jar中...您是如何測試它的?我甚至嘗試過把' src/main/resources/*。jsp'加入'maven-jar-pligin' config ...仍然沒有任何結果 – klactose 2013-03-28 07:28:30

相關問題