MyEclipse Blue 10.7 错误地将引用的 Java 库 jar 包含在 war 中
MyEclipse Blue 10.7 mistakenly including referenced Java library jars in war
我在 MyEclipse Blue 10.7 中的 Java 构建路径上有 4 个引用库,用于我的 Java 项目。我的理解是,使用引用库的要点之一是它们 不 在构建和部署时包含在最终 war 文件中。但是,在我的例子中,这 4 个引用库中的所有 jar 在构建和部署时确实包含在我最终 war 文件的 lib 文件夹中。
我关于引用的库如何工作的假设是否错误,或者是否有设置或其他设置来防止引用的库 jar 包含在 war 文件中?
感谢您的宝贵时间!
你的假设是错误的。根据 Java EE 教程,部分 5.3 Packaging Web Archives 文件夹 WEB-INF/lib
[...] contains JAR files that contain enterprise beans, and JAR archives of libraries called by server-side classes
通常的情况是 WAR 文件包含所有引用的库,但不包含像 servlet API 本身那样的 JEE 库。 JEE 库由 servlet 容器提供。
因此,servlet 容器中的每个 Web 应用程序 运行 都可以拥有自己的库版本。
我知道 Eclipse 中必须有一个设置来准确控制 lib 文件夹中包含的内容,我的同事发现这个 link 导致了答案;为了完整起见,我将 post 下面的详细信息。但是,我应该清楚我使用的是 MyEclipse Blue 10.7……而不仅仅是 Eclipse。我将编辑上面的原始 post 说明。不过,我确定 Eclipse 中的某处有类似的设置。
- 转到 Window >> 首选项 >> MyEclipse >> Java 企业项目 >> Web 项目
- 转到“部署”选项卡
- 在库部署策略下,确保 "Jars from User Libraries" 未选中
就是这样。由于检查了该设置,我的库中的 jars 始终包含在我 war 的 lib 文件夹中;在我的例子中,这不是我想要的行为。
感谢@vanje 也让我思考上面的评论线程。
我在 MyEclipse Blue 10.7 中的 Java 构建路径上有 4 个引用库,用于我的 Java 项目。我的理解是,使用引用库的要点之一是它们 不 在构建和部署时包含在最终 war 文件中。但是,在我的例子中,这 4 个引用库中的所有 jar 在构建和部署时确实包含在我最终 war 文件的 lib 文件夹中。
我关于引用的库如何工作的假设是否错误,或者是否有设置或其他设置来防止引用的库 jar 包含在 war 文件中?
感谢您的宝贵时间!
你的假设是错误的。根据 Java EE 教程,部分 5.3 Packaging Web Archives 文件夹 WEB-INF/lib
[...] contains JAR files that contain enterprise beans, and JAR archives of libraries called by server-side classes
通常的情况是 WAR 文件包含所有引用的库,但不包含像 servlet API 本身那样的 JEE 库。 JEE 库由 servlet 容器提供。
因此,servlet 容器中的每个 Web 应用程序 运行 都可以拥有自己的库版本。
我知道 Eclipse 中必须有一个设置来准确控制 lib 文件夹中包含的内容,我的同事发现这个 link 导致了答案;为了完整起见,我将 post 下面的详细信息。但是,我应该清楚我使用的是 MyEclipse Blue 10.7……而不仅仅是 Eclipse。我将编辑上面的原始 post 说明。不过,我确定 Eclipse 中的某处有类似的设置。
- 转到 Window >> 首选项 >> MyEclipse >> Java 企业项目 >> Web 项目
- 转到“部署”选项卡
- 在库部署策略下,确保 "Jars from User Libraries" 未选中
就是这样。由于检查了该设置,我的库中的 jars 始终包含在我 war 的 lib 文件夹中;在我的例子中,这不是我想要的行为。
感谢@vanje 也让我思考上面的评论线程。