Maven:在war build中的资源文件夹中包含文件夹

TDC*_*TDC 5 build-process web-applications jar maven

我在src/main/rescource中有一个名为extra-jars的文件夹,但是如何在构建中包含这些文件夹呢?我希望它们与其余的jar放在lib文件夹中.我尝试将它们包括在内,但那并没有奏效.

Bre*_*den 7

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

另一种方法是使用Maven War Plugin.它可以通过插件配置将其他文件添加到最终的war工件中.

在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>
Run Code Online (Sandbox Code Playgroud)

<configuration>部分是添加其他文件的关键.

  • <directory>元素定义资源的源位置.路径是相对的pom.xml.
  • <includes>元素定义了要包含的上述目录中的文件.
  • <targetPath>元素定义WAR中要复制文件的目标目录.