1. ホーム
  2. java

[解決済み] dependencies.dependency.version'が見つからないエラーが発生したが、バージョンは親で管理されている

2023-06-29 01:51:02

質問

いくつかのモジュールを含む maven プロジェクトを持っています。 Eclipse(Juno、m2e付き)では、うまくコンパイルされているようです。 しかし、私がモジュールの1つにmavenインストールを行うと、ビルドはすぐに失敗します。

親 pom です。

  <groupId>com.sw.system4</groupId>
  <artifactId>system4-parent</artifactId>
  <version>${system4.version}</version>
  <packaging>pom</packaging>
  <name>System 4 Parent Project</name>
  <modules>
    <module>system4-data</module>
     ...others...
  </modules>
  <properties>
    <system4.version>0.0.1-SNAPSHOT</system4.version>
    <spring.version>3.2.3.RELEASE</spring.version>
    ... others...
  </properties>

  <dependencyManagement>
    <dependencies>
      <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-core</artifactId>
        <version>${spring.version}</version>
        <scope>runtime</scope>
      </dependency>
    ... lots of others ...
    </dependencies>
  </dependencyManagement>

子ポムです。

  <parent>
    <groupId>com.sw.system4</groupId>
    <artifactId>system4-parent</artifactId>
    <version>0.0.1-SNAPSHOT</version>
  </parent>
  <artifactId>system4-data</artifactId>
  <dependencies>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-core</artifactId>
        <scope>runtime</scope>
    </dependency>
    ... lots of others...
  </dependencies>

ビルドすると、以下のような出力が得られます。

[ERROR] The build could not read 1 project -> [Help 1]
[ERROR]
[ERROR]   The project com.sw.system4:system4-data:0.0.1-SNAPSHOT (C:\work\eclips
e_workspaces\systemiv\system4-parent\system4-data\pom.xml) has 8 errors

[ERROR]     'dependencies.dependency.version' for org.springframework:spring-cor
e:jar is missing. @ line 16, column 16

... others omitted for clarity ...

なぜコンパイルしようとさえしないのか理解できません。 親と子からランタイムスコープを削除してみましたが、違いはありません。 助けてください!

どのように解決するのですか?

試してみたいことがいくつかあります。

  1. バージョンのリテラル値を pom

    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-core</artifactId>
      <version>3.2.3.RELEASE</version>
      <scope>runtime</scope>
    </dependency>
    
    
  2. C:\user.m2repository にある .m2 cache をクリアします。私はmavenで作業しているとき、かなり頻繁にこの作業を行っていると思います。特にコミットする前に、CIが実行されることをより確信できるようにするためです。毎回フォルダを削除する必要はなく、プロジェクトパッケージと .cache フォルダだけで十分な場合もあります。

  3. 親Pom宣言にrelativePathタグを追加します。

    <parent>
      <groupId>com.mycompany.app</groupId>
      <artifactId>my-app</artifactId>
      <version>1</version>
     <relativePath>../parent/pom.xml</relativePath>
    </parent>
    
    

pomに合計8つのエラーがあるようですね。親POMとプロパティを追加する前に、基本的なコンパイルを実行できるようにしようと思います。