我正在开始一个遗留项目并尝试使用 Maven 构建它。我正在使用 Eclipse EE 和 Tomcat v7.0。当我在终端中运行“mvn package”时出现上面标题行中的错误。这个错误真的让我很难过,因为在我的 pom.xml 文件中,我有以下依赖项
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)
我还检查了 Properties>Targeted Runtimes 并确保 Tomcat v7.0 是选定的运行时。我相当确定这是我的 eclipse 环境的问题,并希望获得一些有关如何修复它的建议。
编辑:这里有一些额外的信息。运行“mvn package”后的第一个输出是
Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:2.3.2:compile (default-compile) on project myProject: Compilation failure: Compilation failure:
Run Code Online (Sandbox Code Playgroud)
接下来是另一个奇怪的错误,我忘记在原始帖子中包含该错误。我说这很奇怪,因为像包 javax.servlet 一样,org.apache.catalina 也应该包含在 tomcat 中
[ERROR] /path/to/Main.java:[7,26] error: package org.apache.catalina does not exist
Run Code Online (Sandbox Code Playgroud)
另外,我想我混淆了遗留项目的含义,因为这不是一个旧项目。这只是一个已经完成了很多工作的项目,我现在正在帮助原始创作者。
您缺少的依赖项可能是Servlet API。
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.5</version>
<scope>provided</scope>
</dependency>
Run Code Online (Sandbox Code Playgroud)
请务必导入正确版本的 API。对于遗留项目,这可能是比2.5旧的版本。
正如Grzegorz所提到的,您还应该使用提供的范围,因为 Servlet API 应该由您的应用程序服务器(例如 Tomcat)提供。
| 归档时间: |
|
| 查看次数: |
8490 次 |
| 最近记录: |