当前位置: 首页 > 知识库问答 >
问题:

为什么有些JAR在lib中是必需的,而有些则不在战争中?

陆浩博
2023-03-14

我有一个非常基本的Spring项目,它将JSTL和jsp用于视图,当我在页面上包含一个JSTL标记时,我开始收到一个404错误。没有标签就能正常工作。

这篇文章建议将jstl jar包含在WEB-INF\lib目录中,这解决了我的问题,这有点道理...然而,我仍然想知道为什么只需要将这个jar添加到lib目录中?还有其他不需要的依赖项。

所有依赖项都由Maven管理。

和pom.xml...

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>SpringClient</groupId>
<artifactId>Client</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>war</packaging>
<dependencies>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-context</artifactId>
        <version>4.2.6.RELEASE</version>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-web</artifactId>
        <version>4.2.6.RELEASE</version>
    </dependency>
    <!-- http://mvnrepository.com/artifact/org.springframework/spring-webmvc -->
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-webmvc</artifactId>
        <version>4.2.6.RELEASE</version>
    </dependency>
    <!-- Included because as a dependency of spring -->
    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>javax.servlet-api</artifactId>
        <version>3.1.0</version>
    </dependency>
    <!-- http://mvnrepository.com/artifact/jstl/jstl -->
    <dependency>
        <groupId>jstl</groupId>
        <artifactId>jstl</artifactId>
        <version>1.2</version>
    </dependency>

</dependencies>
<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-war-plugin</artifactId>
            <version>2.6</version>
            <configuration>
                <failOnMissingWebXml>false</failOnMissingWebXml>
            </configuration>
        </plugin>
    </plugins>
</build>

正如您所看到的,jstl jar现在列在两个地方,为什么这是必要的?

共有1个答案

蒯卓君
2023-03-14

>

  • 从Web服务器检查您的run-command。有些服务器只需将库添加到类路径参数中,就可以添加额外的库,而其他的Web服务器则有专门的文件夹。

    从我的观点来看,当您使用Maven时,您应该将库直接添加到您的项目中。查看http://maven.apache.org/plugins/maven-war-plugin/examples/including-excluding-files-from-war.html或一般情况下的http://maven.apache.org/plugins/maven-assembly-plugin/usage.html

  •  类似资料:
    • 问题内容: 在用Java编写方法时(例如在论坛,邮件列表,问题跟踪器等),许多人使用’#’符号而不是Java的本机运算符将方法名与类名分开。例如,人们指的是而不是。这种语法从何而来? 问题答案: 这是链接到另一个类的方法时在javadoc注释中使用的表示法。 编辑 收集评论中提供的其他信息: @Hugo指出,表示法又来自HTML锚点 @maksimov指出了调用静态方法的Java语法,这可能会产生

    • 问题内容: 对于Java的处理方式以及涉及到的数字和其他类型的数字,我有些困惑。例如: 输出(也许您应该先猜测一下): 这不能编译是可以预料的,是不同的对象。 令我有些惊讶的是,默认情况下9是an ,并且1)甚至没有编译。请注意,您不能将放入期望使用的方法中,但是在这里它们是相等的。 由于两个相同的原因,这令人惊讶,但似乎更糟。 不足为奇,因为自动装箱到和。 不足为奇,因为不同类中的对象不应该是。

    • 问题内容: 我有一个来自客户的错误,当我查看日志时,我们跟踪异常,某些堆栈跟踪没有行号: 请注意:我已将包名称替换为“ xx”),并且所有类和方法均在我们的应用程序中定义: 完整的堆栈跟踪如下: 我对为什么会发生这样的事情很感兴趣,我的客户是否有可能对现有代码(自定义)进行某些处理? 问题答案: 不显示行号的代码是在没有调试信息的情况下编译的。

    • 我试图从一个maven项目中导出eclipse中的WAR。当我单击File>Export>War File时,会显示一个对话框,其中包含“Include source Files”选项。此选项未被选中(是一个复选框),eclipse仍将WAR与源文件一起导出。我也尝试了,检查该选项,并仍然输出与源的战争。我在Linux 64bit上运行Indigo。

    • 我正在尝试创建一个PyQt5应用程序,其中我使用了某些标签来显示状态变量。为了更新它们,我手动实现了自定义。然而,在调试时,我发现GUI的值发生了变化,但是这些值没有反映在主窗口上。 一些答案建议调用偶尔。但是,这会立即使应用程序崩溃,并冻结应用程序。 这是一个示例代码(所有必需的库都被导入,这只是部分创建问题,实际代码很大): 语句的输出与预期一致。但是,标签中的文本不会更改。 中的函数由某个线

    • 问题内容: 在Go中,有可能等同于或取决于系统架构的类型。我可以声明一个整数变量而不必担心它的大小: 为什么没有type ,它等于或取决于我的系统的体系结构?我希望我也可以: 问题答案: float已在版本2011/01/20中删除。 您仍然可以使用简短的变量声明: 但正如GO常见问题解答所述: 出于可移植性的原因,我们决定以代码中的一些显式转换为代价,使事情变得清晰明了。 您可以在以下主题中查看