2013-03-28 185 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

相关问题