2014-03-05 69 views
5

我在src/main/rescource中有一个名为extra-jars的文件夹,但是如何将这些文件夹包含在构建中?我希望它们放在lib文件夹中,其余的jar文件夹。我试图包括他们通过,但没有奏效。Maven:在构建资源文件夹中包含文件夹

回答

4

对于未由Maven存储库分发的jar,最简单的方法是将额外的jar放入项目的src/main/webapp/WEB-INF/lib目录中。 Maven将按照惯例将src/main/webapp下的所有内容包含在最终的战争神器中。

另一种方法是使用Maven War Plugin。它有能力通过插件配置add additional files到最终的战争神器。

在POM的构建部分添加类似以下内容:

<build> 
    <plugins> 
    <plugin> 
     <groupId>org.apache.maven.plugins</groupId> 
     <artifactId>maven-war-plugin</artifactId> 
     <version>2.4</version> 
     <configuration> 
     <webResources> 
      <resource> 
      <directory>src/main/resource/extra-jars</directory> 
      <includes> 
       <include>*.jar</include> 
      </includes> 
      <targetPath>WEB-INF/lib</targetPath> 
      </resource> 
     </webResources> 
     </configuration> 
    </plugin> 
    </plugins> 
</build> 

<configuration>部分的关键是增加额外的文件。

  • <directory>元素定义资源的源位置。路径相对于pom.xml
  • <includes>元素定义在上述目录中找到的文件包含哪些文件。
  • <targetPath>元素定义了要将文件复制到的WAR中的目标目录。
2

这些罐子应该作为Maven依赖关系添加,而不是通过将它们复制到lib文件夹中。 Maven的设计就是这样的。

+0

这是我在过去三天尝试过的,但如果我用依赖项检索它们,这些最后的jar将不会启动我的程序,所以我这样做了。这不是Maven的方式,但没有其他办法。 – TDC

+0

你收到了哪些错误信息?将jar添加到lib文件夹和类路径是Maven的面包和黄油,所以我们可以帮助您使用该版本 – TrueDub

+0

它与Birt Run Time Viewer一起使用。有些罐子不正确,出于某种原因我无法检索正确的罐子。有了这些罐子(来自依赖),它给了我一个卡塔利娜内部错误等,并与“本地”罐子工作/ s。 – TDC