2

Restlet 2.3.1 (JSE) を使用するプロジェクトがあります。Restlet Web サイトに従って maven を使用しています。

<properties>
  <restlet-version>2.3.1</restlet-version>
</properties>

<repositories>
    <repository>
      <id>maven-restlet</id>
      <name>Public online Restlet repository</name>
      <url>http://maven.restlet.com</url>
    </repository>
  </repositories>

  <dependencies>
    <dependency>
      <groupId>org.restlet.jse</groupId>
      <artifactId>org.restlet</artifactId>
      <version>${restlet-version}</version>
    </dependency>
    <dependency>
      <groupId>org.restlet.jse</groupId>
      <artifactId>org.restlet.ext.jackson</artifactId>
      <version>${restlet-version}</version>
    </dependency>
    <dependency>
      <groupId>org.restlet.jse</groupId>
      <artifactId>org.restlet.ext.jetty</artifactId>
      <version>${restlet-version}</version>
    </dependency>
</dependencies>

これはすべて正常に動作しますが、RAML 拡張機能を追加しようとすると:

<dependency>
  <groupId>org.restlet.jse</groupId>
  <artifactId>org.restlet.ext.raml</artifactId>
  <version>${restlet-version}</version>
</dependency>

次のエラーが表示されます。

ArtifactDescriptorException: Failed to read artifact descriptor for org.raml:raml-parser:jar:0.8.7: 
ArtifactResolutionException: Failure to transfer org.raml:raml-parser:pom:0.8.7 from http://download.java.net/maven/1 was cached in the local repository, resolution will not be reattempted until the update interval of maven1-java has elapsed or updates are forced. 
Original error: Could not transfer artifact org.raml:raml-parser:pom:0.8.7 from/to maven1-java (http://download.java.net/maven/1): No connector available to access repository maven1-java (http://download.java.net/maven/1) of type legacy using the available factories AetherRepositoryConnectorFactory, WagonRepositoryConnectorFactory
4

1 に答える 1

3

ここでの問題は、org.restlet.jse:org.restlet.ext.ramlアーティファクトがアーティファクトに依存していることorg.raml:raml-parser:0.8.7です。残念ながら、このアーティファクトは、Maven を使用するように構成したリポジトリでは利用できません (Maven Central では、バージョン 0.8.11 でのみ利用可能です)。

必要なバージョンは、Mulesoft Maven リポジトリ ( http://repository.mulesoft.org/releases/ ) で入手できます。

次のリポジトリ定義を pom に追加すると、問題が解決するはずです。

<repository>
    <id>mulesoft-releases</id>
    <name>MuleSoft Repository</name>
    <url>http://repository.mulesoft.org/releases/</url>
    <layout>default</layout>
</repository>

アップデート

David が示唆するように、バージョン 0.8.11 を使用する場合は、Mulesoft リポジトリを追加する代わりに、次のように依存関係を変更するだけです。

<dependencies>
    <dependency>
        <groupId>org.restlet.jse</groupId>
        <artifactId>org.restlet.ext.raml</artifactId>
        <version>${restlet-version}</version>
        <exclusions>
            <!-- exclude transitive dependency (version 0.8.7) -->
            <exclusion>
                <groupId>org.raml</groupId>
                <artifactId>raml-parser</artifactId>
            </exclusion>
        </exclusions>
    </dependency>
    <!-- explicitly define dependency to version 0.8.11 -->
    <dependency>
        <groupId>org.raml</groupId>
        <artifactId>raml-parser</artifactId>
        <version>0.8.11</version>
    </dependency>

    <!-- other dependencies -->
</dependencies>
于 2015-05-19T09:52:51.610 に答える