【问题标题】:Maven: include folder in resource folder in the war buildMaven:在战争构建的资源文件夹中包含文件夹
【发布时间】:2014-04-07 12:45:18
【问题描述】:

我在 src/main/recource 中有一个名为 extra-jars 的文件夹,但是如何将它们包含在构建中?我希望它们与其余的罐子一起放在 lib 文件夹中。我尝试通过 将它们包括在内,但没有奏效。

【问题讨论】:

    标签: maven web-applications jar build-process


    【解决方案1】:

    对于不是由 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>
    

    &lt;configuration&gt; 部分是添加其他文件的关键。

    • &lt;directory&gt; 元素定义资源的源位置。该路径相对于pom.xml
    • &lt;includes&gt; 元素定义要包含在上述目录中的哪些文件。
    • &lt;targetPath&gt; 元素定义文件复制到的 WAR 中的目标目录。

    【讨论】:

      【解决方案2】:

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

      【讨论】:

      • 这是我过去三天尝试的东西,但是如果我用依赖项检索它们,这些最后的 jar 将不会启动我的程序,所以我这样做了。这不是 Maven 方式,但没有其他方式。
      • 您收到了哪些错误消息?将 jars 添加到 lib 文件夹和类路径是 Maven 的基础,所以也许我们可以为您提供帮助
      • 使用了 Birt Run Time Viewer。有些罐子不正确,由于某种原因我无法检索正确的罐子。使用这些 jars(来自依赖项)它给了我一个 catalina 内部错误等,并且使用 'local' jars 它可以工作/s。
      • 听起来你的“本地”jar 与 Maven 检索的版本不同。你能证实吗?或者,您可以将“本地”添加到本地 maven 存储库并从那里检索它们。这是一个简单的单命令程序。但是,如果您正在构建的应用程序将被其他人重新构建,这将不是一个好主意。
      • 确实会被别人重建。所以这就是为什么我想把它们放在资源文件夹中。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-11-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多