我正在尝试从sourceforge(jtmt.sf.net)安装Maven发行版,它提供了一个POM。 Hoewever
mvn install
抛出错误:
[ERROR] 'build.plugins.plugin[org.mortbay.jetty:maven-jetty6-plugin].depende
ncies.dependency.scope' for org.apache.geronimo.specs:geronimo-j2ee_1.4_spec:jar
must be one of [compile, runtime, system] but is 'provided'. @ line 653, column
20
pom包含代码:
<!-- For web development with Jetty6 -->
<plugin>
<groupId>org.mortbay.jetty</groupId>
<artifactId>maven-jetty6-plugin</artifactId>
<configuration>
<scanIntervalSeconds>10</scanIntervalSeconds>
<connectors>
<connector implementation="org.mortbay.jetty.nio.SelectChannelConnector">
<port>8081</port>
<maxIdleTime>60000</maxIdleTime>
</connector>
</connectors>
</configuration>
<dependencies>
<dependency>
<groupId>org.apache.geronimo.specs</groupId>
<artifactId>geronimo-j2ee_1.4_spec</artifactId>
<version>1.0</version>
<scope>provided</scope>
</dependency>
</dependencies>
</plugin>
我假设POM过去工作过,虽然现在这个项目有点休眠了。
安装时是否应该设置一些开关? (我使用的是mvn 3.0.3)。发送方已经在lib/
中检出了大量的库。
答案 0 :(得分:9)
该项目可能正在使用Maven 2. Maven 3对插件中的范围更加挑剔,并且插件依赖项中不再允许范围provided
。你可以尝试:
provided
意味着某些内容应该已经可以使其可用)<scope>
标记(使其成为简单的compile
依赖关系)插件中现在不允许provided
的原因是provided
实际上是在运行时由环境(例如应用服务器)提供的依赖项。 Jetty是一个特例 - 它是一个经常用作插件的应用服务器。