范围“;“提供”;给出maven中的安装错误

范围“;“提供”;给出maven中的安装错误,maven,Maven,我正试图从sourceforge(jtmt.sf.net)安装一个Maven发行版,该发行版提供POM。霍韦弗 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

我正试图从sourceforge(jtmt.sf.net)安装一个Maven发行版,该发行版提供POM。霍韦弗

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>

org.mortbay.jetty
maven-jetty6-plugin
10
8081
60000
org.apache.geronimo.specs
geronimo-j2ee_1.4_规范
1
假如
我假设POM在过去工作过,尽管该项目现在有些休眠


安装时是否需要设置一些开关?(我使用的是MVN3.0.3)。FWIW发行版已经在
lib/
中签出了大量库,该项目可能正在与Maven 2合作。Maven 3对插件中的作用域更加挑剔,插件依赖项中不再允许提供作用域
。您可以尝试:

  • 完全删除依赖项并重新构建(scope
    提供的
    意味着无论如何都应该有一些东西使其可用)
  • 仅删除
    标记(使其成为一个简单的
    编译
    依赖项)
  • 如果没有任何帮助,您可以尝试使用Maven 2构建它

现在不允许在插件中使用
提供的
,原因是
提供的
实际上是用于运行时环境(如app server)提供的依赖项。Jetty是一个特例-它是一个经常用作插件的应用程序服务器。

+1谢谢。我认为你对maven版本的看法是正确的。我现在有更多的错误(尽管JAR在lib目录中,但依赖项没有被解析)。有没有办法在maven上设置一个开关来运行maven2,或者我必须下载并安装maven2?M3的依赖系统是全新的(他们现在使用一个名为Aether的独立库),所以这样的开关不太可能存在。谢谢。在本文中,有人指出Maven3是向后兼容的,但这可能是乐观的。