0

私はこの親を依存関係管理と一緒に持っていません:

<dependencyManagement>
      <dependencies>
         <dependency>
            <groupId>javax.ejb</groupId>
            <artifactId>ejb-api</artifactId>
            <version>3.0</version>
        </dependency>
        <dependency>
            <groupId>${project.groupId}</groupId>
            <artifactId>gpt.domini</artifactId>
            <version>${project.version}</version>
        </dependency>
        <dependency>
            <groupId>${project.groupId}</groupId>
            <artifactId>gpt.ejb</artifactId>
            <version>${project.version}</version>
            <type>ejb</type>
        </dependency>
        <dependency>
            <groupId>${project.groupId}</groupId>
            <artifactId>gpt.logica</artifactId>
            <version>${project.version}</version>
            <type>jar</type>
        </dependency>
        <dependency>
            <groupId>${project.groupId}</groupId>
            <artifactId>gpt.ui</artifactId>
            <version>${project.version}</version>
            <type>war</type>
        </dependency>

      </dependencies>
   </dependencyManagement>

私の ear モジュールでは、次のようにこの依存関係を参照したいと思います。

<dependencies>
        <dependency>
            <groupId>${project.groupId}</groupId>
            <artifactId>gpt.domini</artifactId>
            <!--  <version>${project.version}</version>-->
        </dependency>
        <dependency>
            <groupId>${project.groupId}</groupId>
            <artifactId>gpt.ejb</artifactId>
            <!--  <type>ejb</type>-->
        </dependency>
        <dependency>
            <groupId>${project.groupId}</groupId>
            <artifactId>gpt.logica</artifactId>
            <!--  <version>${project.version}</version>-->
            <!--  <type>jar</type>-->
        </dependency>
        <dependency>
            <groupId>${project.groupId}</groupId>
            <artifactId>gpt.ui</artifactId>
            <!--  <version>${project.version}</version>-->
            <!--  <type>war</type>-->
        </dependency>
    </dependencies>

しかし、maven はこのエラーを教えてくれます: Project build error: 'dependencies.dependency.version' for cat.base.gpt:gpt.ui:jar is missing.

では、なぜバージョンの 2 倍を指定する必要があるのでしょうか。これは意味がありません、私は何を間違っていますか?

4

1 に答える 1

0

問題は、dependencyManagement を介して定義することです

<dependency>
    <groupId>${project.groupId}</groupId>
    <artifactId>gpt.ui</artifactId>
    <version>${project.version}</version>
    <type>war</type>
</dependency>

ただし、依存関係では次を定義します。

<dependency>
    <groupId>${project.groupId}</groupId>
    <artifactId>gpt.ui</artifactId>
    <!--  <version>${project.version}</version>-->
    <!--  <type>war</type>-->
</dependency>

つまり、タイプが定義されていないことを意味し、maven の表現では、タイプがデフォルトであると想定されることを意味します。つまり、jarであるため、依存関係を次のように変更する必要があります。

<dependency>
    <groupId>${project.groupId}</groupId>
    <artifactId>gpt.ui</artifactId>
    <type>war</type>
</dependency>
于 2013-07-17T10:42:36.160 に答える