0

Maven Central へのプロキシとして、また開発スナップショットをキャプチャするために、Apache Archiva インスタンスをセットアップしています。プロキシをセットアップして、アーティファクトを Archiva スナップショット リポジトリにデプロイできますが、スナップショット リポジトリからアーティファクトをプルして他のプロジェクトで使用することはできません。

pom.xml の関連部分 (依存プロジェクト)

<project>
  <!-- Excluded detail -->
  <dependency>
    <groupId>uk.abc</groupId>
    <artifactId>ABC</artifactId>
    <version>1.0-SNAPSHOT</version>
    <type>war</type>
  </dependency>
  <!-- Excluded detail -->
  <distributionManagement>
    <repository>
        <id>archiva.snapshots</id>
        <name>Snapshot Repository</name>
        <url>https://xxx.xxx.xxx.xxx/archiva/repository/snapshots</url>
    </repository>
  </distributionManagement>
  <!-- Excluded detail -->
</project> 

私の ~/.m2/settings.xml

<settings>
  <servers>
    <server>
      <id>archiva.snapshots</id>
      <username>username</username>
      <password>xxx</password>
    </server>
    <server>
      <id>archiva.internal</id>
      <username>username</username>
      <password>xxx</password>
    </server>
  </servers>
  <mirrors>
    <mirror>
        <id>archiva.internal</id>
        <mirrorOf>central</mirrorOf>
        <url>https://xxx.xxx.xxx.xxx/archiva/repository/internal</url>
    </mirror>
    <mirror>
        <id>archiva.snapshots</id>
        <mirrorOf>snapshots</mirrorOf>
        <url>https://xxx.xxx.xxx.xxx/archiva/repository/snapshots</url>
    </mirror>
  </mirrors>
  <profiles>
    <profile>
        <id>default</id>
        <activation>
            <activeByDefault>true</activeByDefault>
        </activation>
        <repositories>
            <repository>
              <id>archiva.internal</id>
              <name>Archiva Managed Internal Repository</name>
              <url>https://xxx.xxx.xxx.xxx/archiva/repository/internal/</url>
              <releases>
                <enabled>true</enabled>
              </releases>
              <snapshots>
                <enabled>false</enabled>
              </snapshots>
            </repository>
            <repository>
              <id>archiva.snapshots</id>
              <name>Archiva Managed Internal Repository</name>
              <url>https://xxx.xxx.xxx.xxx/archiva/repository/snapshots/</url>
              <releases>
                <enabled>false</enabled>
              </releases>
              <snapshots>
                <enabled>true</enabled>
              </snapshots>
            </repository>
        </repositories>
    </profile>
  </profiles>
</settings>

依存プロジェクトをビルドすると、クラスを参照できません (パブリック アクセス)。

スナップショット リポジトリを参照でき、war ファイルがそこにあることがわかっていることに注意してください。

何か案は?

4

2 に答える 2

1

「war」依存タイプを使用できず、含まれているクラスを参照できると期待できないことがわかりました。ただし、クラスを含む追加の jar を作成する (war と jar の両方を作成する) ことができます。

http://maven.apache.org/plugins/maven-war-plugin/faq.html#attached

依存関係を取り込むときに「jar」タイプを使用できます...私の場合:

<dependency>
    <groupId>uk.abc</groupId>
    <artifactId>ABC</artifactId>
    <version>1.0-SNAPSHOT</version>
    <type>jar</type>
</dependency>

したがって、質問は少し誤解を招くと思います...依存関係はArchivaから引き出されましたが、アクセス可能なタイプではありませんでした。

于 2013-09-18T15:40:18.377 に答える