gpt4 book ai didi

eclipse - Maven 提供部署在 Juno + Tomcat 7 上的范围

转载 作者:行者123 更新时间:2023-11-28 21:53:44 25 4
gpt4 key购买 nike

那么也许不是 Maven 问题。也许是 m2e/wtp 问题?

为了提供背景知识,我在 Eclipse 中建立了一个 ICEFaces 项目并将其部署在 Tomcat 7.0.30 中。在部署到 Tomcat 时,似乎忽略了提供范围内的 servlet-api.jar 的 Maven POM 配置。我错过了什么吗?如何让 Maven 正确执行?

在项目中,javax.servlet-api.jar 作为 ICEFaces 的传递依赖被引入。由于 Tomcat 带有它自己的 servlet-api.jar,我将其标记为排除并添加了显式依赖项(范围:已提供)。

INFO: Starting Servlet Engine: Apache Tomcat/7.0.30
06-Mar-2013 10:44:05 org.apache.catalina.loader.WebappClassLoader validateJarFile INFO: validateJarFile(D:\workspaces\test-project\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\test-project\WEB-INF\lib\javax.servlet-api-3.0.1.jar) - jar not loaded. See Servlet Spec 2.3, section 9.7.2. Offending class: javax/servlet/Servlet.class
06-Mar-2013 10:44:07 com.sun.faces.config.ConfigureListener contextInitialized

Maven POM

<dependency>
<groupId>org.icefaces</groupId>
<artifactId>icefaces-ace</artifactId>
<version>3.2.0</version>
<exclusions>
<exclusion>
<artifactId>javax.servlet-api</artifactId>
<groupId>javax.servlet</groupId>
</exclusion>
</exclusions>
</dependency>

And added a dependency with provided scope

<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.0.1</version>
<scope>provided</scope>
</dependency>

设置:
* eclipse 朱诺号
* Maven webapp 项目已创建。
* JSF 和 ICEFaces 方面已启用和配置。
* 配置 Eclipse 项目的 Deployment Assembly 以部署 Maven 依赖项。
* 将项目从 Eclipse 部署到 Tomcat(在服务器选项卡中右键单击 > 添加/删除 > 添加项目 > Publsh)

* 更新 1 *

mvn dependency:tree -Dverbose

不知道如何处理这些警告。我将查看如何启用调试日志记录。

[INFO] Scanning for projects...  
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building test-project Maven Webapp 0.0.1-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- maven-dependency-plugin:2.1:tree (default-cli) @ test-project ---
[WARNING] The POM for org.codehaus.plexus:plexus-utils:jar:1.0.4 is invalid, transitive dependencies (if any) will not be available, enable debug logging for more details
[WARNING] The POM for classworlds:classworlds:jar:1.1-alpha-2 is invalid, transitive dependencies (if any) will not be available, enable debug logging for more details
[WARNING] The POM for org.apache.maven:maven-plugin-api:jar:2.0 is invalid, transitive dependencies (if any) will not be available, enable debug logging for more details
[WARNING] The POM for org.apache.maven:maven-model:jar:2.0 is invalid, transitive dependencies (if any) will not be available, enable debug logging for more details
[WARNING] The POM for org.codehaus.plexus:plexus-container-default:jar:1.0-alpha-8 is invalid, transitive dependencies (if any) will not be available, enable debug logging for more details
[WARNING] The POM for org.apache.maven:maven-settings:jar:2.0 is invalid, transitive dependencies (if any) will not be available, enable debug logging for more details
[INFO] com.mochapenguin:test-project:war:0.0.1-SNAPSHOT
[INFO] +- junit:junit:jar:3.8.1:test
[INFO] +- org.icefaces:icefaces-ace:jar:3.2.0:compile
[INFO] | \- org.icefaces:icefaces:jar:3.2.0:compile
[INFO] | +- org.glassfish:javax.faces:jar:2.1.6:compile
[INFO] | +- javax.portlet:portlet-api:jar:2.0:compile
[INFO] | +- org.icepush:icepush:jar:3.2.0:compile
[INFO] | | \- javax.mail:mail:jar:1.4.1:compile
[INFO] | | \- javax.activation:activation:jar:1.1:compile
[INFO] | \- com.sun.xml.fastinfoset:FastInfoset:jar:1.2.12:compile
[INFO] +- org.icefaces:icefaces-compat:jar:3.2.0:compile
[INFO] | +- (org.icefaces:icefaces:jar:3.2.0:compile - omitted for duplicate)
[INFO] | +- commons-beanutils:commons-beanutils:jar:1.8.0:compile
[INFO] | +- commons-logging:commons-logging:jar:1.1:compile
[INFO] | \- javax.servlet:jstl:jar:1.2:compile
[INFO] \- javax.servlet:javax.servlet-api:jar:3.0.1:provided
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 2.440s
[INFO] Finished at: Wed Mar 06 13:24:47 GMT 2013
[INFO] Final Memory: 6M/120M
[INFO] ------------------------------------------------------------------------

* 更新 2 *

我在 Juno 中安装了以下版本:

m2e - Maven Integration for Eclipse 1.3.0.**20130129-0926** org.eclipse.m2e.feature.feature.group   Eclipse.org - m2e

在@eis 指向的帖子的答案中添加了链接 已检查更新。 Eclipse 显示有可用的小更新 (1.3.1.20130219-1424)。但更新失败并出现以下错误:

An error occurred while collecting items to be installed
session context was:(profile=epp.package.jee, phase=org.eclipse.equinox.internal.p2.engine.phases.Collect, operand=, action=).
No repository found containing: osgi.bundle,com.ning.async-http-client,1.6.5.20130219-0923
No repository found containing: osgi.bundle,org.eclipse.m2e.archetype.common,1.3.1.20130219-0923
No repository found containing: osgi.bundle,org.eclipse.m2e.core,1.3.1.20130219-1424
No repository found containing: osgi.bundle,org.eclipse.m2e.core.ui,1.3.1.20130219-1424
No repository found containing: osgi.bundle,org.eclipse.m2e.discovery,1.3.1.20130219-1424
No repository found containing: osgi.bundle,org.eclipse.m2e.editor,1.3.1.20130219-1424
No repository found containing: osgi.bundle,org.eclipse.m2e.editor.xml,1.3.1.20130219-1424
No repository found containing: osgi.bundle,org.eclipse.m2e.jdt,1.3.1.20130219-1424
No repository found containing: osgi.bundle,org.eclipse.m2e.launching,1.3.1.20130219-1424
No repository found containing: osgi.bundle,org.eclipse.m2e.lifecyclemapping.defaults,1.3.1.20130219-1424
No repository found containing: osgi.bundle,org.eclipse.m2e.maven.indexer,1.3.1.20130219-0923
No repository found containing: osgi.bundle,org.eclipse.m2e.maven.runtime,1.3.1.20130219-0923
No repository found containing: osgi.bundle,org.eclipse.m2e.model.edit,1.3.1.20130219-1424
No repository found containing: osgi.bundle,org.eclipse.m2e.refactoring,1.3.1.20130219-1424
No repository found containing: osgi.bundle,org.eclipse.m2e.scm,1.3.1.20130219-1424
No repository found containing: osgi.bundle,org.jboss.netty,3.2.5.Final-20130219-0923
No repository found containing: org.eclipse.update.feature,org.eclipse.m2e.feature,1.3.1.20130219-1424

所以,我卸载了现有的 m2e 并重新安装了它。这奏效了。还包括

m2e - slf4j over logback logging (Optional) 1.3.1.20130219-1424 org.eclipse.m2e.logback.feature.feature.group   Eclipse.org - m2e

但问题依然存在。 Juno 仍在部署 javax.servlet-api3.0.1.jar :(


已解决

(免责声明:这是我的理解。很高兴得到纠正)

似乎 m2e + m2e extras(不确定它们是否仍然是单独的实体,或者只是 m2e)已经与 Juno 一起安装。我必须安装 m2e - wtp connector让事情正常进行。 Maven 作用域现在受到重视。

安装 m2e-wtp 连接器:在 Juno - Window > Preferences > Maven > Discovery > Open Catalog > 选中 m2e-wtp connector 的复选框以安装它。这会将以下内容添加到已安装的软件中

m2e-wtp - Maven Integration for WTP (Incubation)    0.17.0.20130212-1821    org.eclipse.m2e.wtp.feature.feature.group   Eclipse.org - m2e-wtp

最佳答案

对我来说,这不是 Maven 的问题。 Maven 获得提供了 servlet-api,但您不是通过 Maven 部署或构建包,您只是使用 Maven 进行编译(并可能通过 m2e 进行编译)并通过 Eclipse 进行部署。 m2e/eclipse 应该可以处理这个问题,但不是。

根据这个similar thread ,安装 m2e + m2e-extras 应该可以修复它。另请参阅其他答案以获取有关 Eclipse 行为的更多详细信息。

关于eclipse - Maven 提供部署在 Juno + Tomcat 7 上的范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15245782/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com