3

POM を提供する sourceforge (jtmt.sf.net) から Maven ディストリビューションをインストールしようとしています。しかし

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 を使用しています)。FWIW ディストリビューションは で非常に多数のライブラリをチェックアウトしましたlib/

4

1 に答える 1

11

このプロジェクトはおそらく Maven 2 で作業していました。Maven 3 はプラグインのスコープにかなりうるさく、スコープはプラグprovidedインの依存関係では許可されなくなりました。あなたが試すことができます:

  • 依存関係を完全に削除して再構築します(スコープprovidedは、とにかく何かがすでに利用可能になっていることを意味します)
  • <scope>タグだけを削除します(単純なcompile依存関係にするため)
  • 何も役に立たない場合は、Maven 2 でビルドしてみてください

providedプラグインで許可されなくなった理由はprovided、実行時に環境 (アプリ サーバーなど) によって提供される依存関係のためです。Jetty は特殊なケースです。プラグインとして頻繁に使用されるアプリ サーバーです。

于 2012-10-12T21:05:57.743 に答える