【问题标题】:Maven webapp with tomcat 5.5带有tomcat 5.5的Maven webapp
【发布时间】:2011-06-25 11:24:41
【问题描述】:

我正在学习 Maven,并使用以下命令创建了一个示例 WebApp:

mvn archetype:generate \
-DgroupId=org.obliquid \
-DartifactId=test \
-DarchetypeArtifactId=maven-archetype-webapp \
-Dversion=1.0-SNAPSHOT

然后跑:

mvn package
mvn tomcat:run

它可以工作,但使用的是 tomcat 6.0.29,我该如何更改为使用 tomcat 5.5?

更新:我尝试使用 5.5.23 版本的 @splash 建议,因为似乎最新的 5.5.33 在主 Maven 存储库中不可用。从示例中,我删除了 catalina-ha、tribes 和 jasper-jdt 并保留了其余部分(catalina、el-api、jasper、jasper-el、jsp-api、servlet-api、coyote、dbcp)。正在尝试打包:

[错误] 无法在项目 yyy 上执行目标:无法解析项目 xxx:yyy:war:1.0-SNAPSHOT 的依赖项:无法解析以下工件:org.apache.tomcat:catalina:jar:5.5。 23, org.apache.tomcat:el-api:jar:5.5.23, org.apache.tomcat:jasper:jar:5.5.23, org.apache.tomcat:jasper-el:jar:5.5.23, org. apache.tomcat:jasper-jdt:jar:5.5.23, org.apache.tomcat:jsp-api:jar:5.5.23, org.apache.tomcat:servlet-api:jar:5.5.23, org.apache。 tomcat:coyote:jar:5.5.23, org.apache.tomcat:dbcp:jar:5.5.23: 找不到 org.apache.tomcat:catalina:jar:5.5.23 in http://www.mvnsearch.org/maven2/ 被缓存在本地存储库中, 直到 mvnsearch 的更新间隔过去或强制更新后才会重新尝试解析 -> [帮助 1]

【问题讨论】:

    标签: java tomcat maven


    【解决方案1】:

    我想这个例子应该能回答你的问题:Adjust Tomcat Version

    对于 Tomcat 5.5,您必须调整版本(例如 5.5.23)并选择正确的依赖项(组 tomcat 而不是 org.apache.tomcat)。

    【讨论】:

    • 谢谢,不幸的是它不起作用。详细信息太长,无法评论,所以我更新了我的答案。
    • 哎呀,我没有遵循这部分“(组 tomcat 而不是 org.apache.tomcat)。” -> 现在我尝试更改 pom.xml 中的所有匹配项
    • 好一点:[错误] 无法在项目 yyy 上执行目标:无法解析项目 xxx:yyy:war:1.0-SNAPSHOT 的依赖项:无法解析以下工件:tomcat :el-api:jar:5.5.23, tomcat:jasper:jar:5.5.23, tomcat:jasper-el:jar:5.5.23, tomcat:jasper-jdt:jar:5.5.23, tomcat:coyote:jar :5.5.23, tomcat:dbcp:jar:5.5.23: 在 mvnsearch (mvnsearch.org/maven2) 中找不到工件 tomcat:el-api:jar:5.5.23 -> [帮助 1]
    • 我不熟悉 Tomcat 的包结构,但正如您在 Maven Central tomcat index 中看到的那样,5.5 不存在这些工件。只需删除它们,看看会发生什么。
    • 我猜它只是不适用于 Tomcat 5.5:[错误] 无法在项目测试中执行目标 org.codehaus.mojo:tomcat-maven-plugin:1.1:run (default-cli) -webapp:执行目标 org.codehaus.mojo:tomcat-maven-plugin:1.1:run 的 default-cli 失败:执行 org.codehaus.mojo:tomcat-maven-plugin:1.1:run:java 时遇到 API 不兼容.lang.NoSuchMethodError: org.apache.tomcat.util.IntrospectionUtils.setProperty(Ljava/lang/Object;Ljava/lang/String;Ljava/lang/String;)V -- 所以我放弃了,我只会安装它本地 tomcat 并尝试使用 tomcat:deploy
    【解决方案2】:

    不可能Tomcat的底层依赖在版本6下不可用。

    【讨论】:

    • 我已经放弃了这个,但是当我尝试时,我已经删除了 catalina-ha。反正我也觉得不可能。我已经使用非 Maven 控制的 tomcat 解决了。此外,我仍在努力说服客户升级他们超级旧的 Tomcat 安装,可能很快他们就会:-)
    猜你喜欢
    • 1970-01-01
    • 2012-02-26
    • 2020-06-28
    • 2015-04-28
    • 2020-06-14
    • 2019-09-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多