私は pom を初めて使用しますが、maven.apache.org の「はじめに」を実行し、このプロジェクトを開始する前に社内の既存のプロジェクトにも言及しました。
情報: Eclipse で jar を参照ライブラリとして指定すると、プロジェクトはスムーズに実行され、問題は発生しません。
問題: リポジトリから依存コードをダウンロードできないため、コンパイル エラーが発生します。
私のプロジェクト構造は[理解しやすいように簡略化されています]
utils
utils/commons
[ソースは src/main/java スタイル] [パッケージを使用org.apache.commons.io.IOUtils
]
utils/commons/pom.xml
utils/pom.xml
[親]
ここで、commons フォルダーから始めて、pom.xml を唯一のモジュールとして書き込み、親/他のモジュールへの参照はありません。実行した後、次mvn install
のようなエラーが発生しました
ToolUtils.java:[17,28] error: package org.apache.commons.io does not exist
ToolUtils.java:[18,23] error: package org.apache.log4j does not exist
使用していたコードにコメントすると、正常org.apache.commons.io.IOUtils
にmvn install
動作し、jar が生成されます。ネットを調べたところ、問題がリポジトリの特定に失敗していることがわかったので、親 pom.xml への参照を更新しました。また、親の pom.xml にリポジトリの詳細も含めました。[utilsフォルダ直下]
それでも同じエラーが発生し、ビルドはそれ以上進みません。
ToolUtils.java:[17,28] error: package org.apache.commons.io does not exist
ToolUtils.java:[18,23] error: package org.apache.log4j does not exist
ブラウザで手動で確認した内部 URL を使用しています。また、別の古いプロジェクトが同じ URL を参照し、適切にビルドされているため、プロキシの詳細が正しいことを確認しました。[残念ながら、プロジェクトは複雑すぎて pom.xml をコピーして貼り付けて変更することができないため、pom.xml をゼロから作成します。]
リポジトリからダウンロードしない原因となる何が欠けているのでしょうか? 前もって感謝します。どんな助けでも大歓迎です。
注: 1) 簡単に識別できるように、2 つの異なる pom.xml のスニペットとそのディレクトリ名を貼り付けています。添付ファイルはリクエストに応じて提供できます。2) 一部の身元を保護するために、機密データへの参照を変更しました。
utils/common/pom.xml [コモンズ モジュール]
....
<parent>
<groupId>com.osg.rtos</groupId>
<artifactId>rxutils</artifactId>
<version>0.0.1-SNAPSHOT</version>
</parent>
....
<dependencyManagement>
<dependencies>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
</dependency>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
</dependency>
<dependency>
<groupId>com.osg.rtos</groupId>
<artifactId>rtos-commons-service</artifactId>
<version>${rtos.version}</version>
</dependency>
</dependencies>
</dependencyManagement>
utils/pom.xml [親]
....
<groupId>com.osg.rtos</groupId>
<artifactId>rxutils</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>rxutils</name>
<packaging>pom</packaging>
<repositories>
<repository>
<id>release</id>
<url>http://internal.com/~devbuild/repository</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
</repositories>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.16</version>
</dependency>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.4</version>
</dependency>
<dependency>
<groupId>com.osg.rtos</groupId>
<artifactId>rtos-commons-service</artifactId>
<version>${rtos.version}</version>
</dependency>
<dependency>
<groupId>com.osg.rtos</groupId>
<artifactId>rtos-data</artifactId>
<version>${rtos.version}</version>
</dependency>
<dependency>
<groupId>com.osg.rtos</groupId>
<artifactId>rtos-exception</artifactId>
<version>${rtos.version}</version>
</dependency>
<dependency>
<groupId>com.osg.rtos</groupId>
<artifactId>rtos-mailbox-service</artifactId>
<version>${rtos.version}</version>
</dependency>
<dependency>
<groupId>com.osg.rtos</groupId>
<artifactId>rtos-message-service</artifactId>
<version>${rtos.version}</version>
</dependency>
<dependency>
<groupId>com.osg.rtos</groupId>
<artifactId>rtos-rest</artifactId>
<version>${rtos.version}</version>
</dependency>
</dependencies>
</dependencyManagement>
<modules>
<module>commons</module>
<module>rxutils</module>
<module>tool</module>
</modules>
...