【问题标题】:Include java webapp lib in maven build在 Maven 构建中包含 java webapp lib
【发布时间】:2013-08-01 22:08:15
【问题描述】:

我在 Eclipse 上创建了一个动态 Web 应用程序。我使用 M2E 插件将其转换为 maven 项目。我在 pom.xml 中添加了 maven war 插件,以便它可以使用 maven build 为我的项目创建战争。

但是当我进行构建时,它无法编译几个引用了我的 webapp/Web-INF/lib 文件夹的 jar 的类。我不能将这些 jar 作为依赖项包含在 pom.xml 中。

如何告诉 maven 在构建类和创建战争时也包含 Web-INF/lib jar?

【问题讨论】:

  • 这些 jars 是如何出现在 WEB-INF/lib 中的?根据我的理解,在执行 maven-war-plugin 之后,它将所有 jar 放在 WeB-INF/lib 文件夹中,因此它如何在构建开始之前包含 jar。您能否提供执行 maven-wasr-plugin 时遇到的错误?- 谢谢
  • 其实我已经把那个 jar 放在 WEB-INF/lib 文件夹中了。基本上我想包含一个 jar 用于构建,它在 Maven 存储库中不可用。我可以将它保存在其他文件夹中,并在需要时包含它,而不是 WEB-INF/lib 文件夹。我在其中一个类中遇到编译错误,因为 Maven 构建不包括我的 jar。
  • 请看下面我的回答。谢谢

标签: maven jakarta-ee web-applications maven-eclipse-plugin


【解决方案1】:

这样做是不正确的,你不应该在WEB-INF/lib文件夹中手动放置任何jar。

如果该 jar 在 MAVEN CENTRAL REPO 中不可用,那么您可以下载它并将其安装在您的 NEXUS CENTRAL REPO(如果有的话)中,否则将该 jar 放在您的本地 maven 存储库中并将其作为依赖项添加到你的 pom 文件。如果您不想在 WEB-INF/lib 中包含该 jar,则将范围更改为提供,否则将其保留为默认值,即编译。

在构建期间,MAVEN 将首先在您的本地 repo 中查找该特定 jar,如果没有找到,则尝试从 Centra Repo 下载。

一旦它在您的本地 repo 中可用,您的构建就不会中断。

【讨论】:

  • 谢谢,您的回答真的很有帮助。我们需要为该 jar 创建本地存储库。但是如果我必须把这个 webapp 给别人怎么办。他将如何获得这种依赖?因为这种依赖是本地的。是否有任何网站允许上传您的依赖项?
  • 这实际上意味着什么if I have to give this webapp to someone ?。你是说提供战争文件吗? - 谢谢
  • 哎呀-是的,我的意思是一样的:)。或者将此应用程序交给其他开发者进行开发。
  • 在这种情况下最好有一个 Nexus 存储库,否则开发会很麻烦。你能给我那个 jar 的详细信息吗,它是外部的还是你内部项目相关的 jar。 - 谢谢
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-03-12
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多