Mavenのオプションのキーワード徹底イラスト

EDITORIAL

もともと良くスターターは、その事前に詳細の一部が命令を説明するために白羽の内容を抽出するための設計のアイデアや重要なポイントのいくつかを理解するために、「どのように春ブーツスターターをカスタマイズするには」を書きたかったが、

Mavenののpom.xmlでは、多くの場合、次のコードで同様の依存関係が表示されます。

<dependency>
  <groupId>sample.ProjectA</groupId>
  <artifactId>Project-A</artifactId>
  <version>1.0</version>
  <scope>compile</scope>
  <optional>true</optional> 
</dependency>

ここだ<optional>true</optional>、それは何を意味するのでしょうか?

ミステリーオプションのキーワード

古いルールは、図を描く問題を示しています。

プロジェクトCので、プロジェクトA(OptionalFeatureAClass)およびプロジェクトBクラス(OptionalFeatureBClass)からの2つのクラスを使用して、NO依存packageAプロジェクトCとpackageBがない場合、コンパイラは失敗します。

プロジェクトD依存プロジェクトCが、プロジェクトのためにDクラス(OptionalFeatureAClass)とクラス(OptionalFeatureBClass)はオプション機能である、最終戦争/ EJBパッケージを作るために不必要な依存関係が含まれていないので、使用<optional>文は現在に依存していますデフォルトで選択し、他のプロジェクトに継承されることはありません(Javaのfinalクラスに継承することはできませんように、他のクラスなど)

プロジェクトDは本当にOptionalFeatureAClassでプロジェクトCを使用する必要がある場合はどのようにそれを行うには?その後、我々は見ていき、プロジェクト内のpom.xmlプロジェクトDでの明示的な文の依存を追加する必要があります。

プロジェクトDプロジェクトAはOptionalFeatureAClassを使用する必要がある、あなたはでのpom.xmlファイルにプロジェクトAプロジェクトDの明示的な依存を追加する必要があります

これは、MySQLの永続的な設計(プロジェクトAとして、また、なぜMavenの理由設計オプションのキーワードを理解し、データベース設計のより持続的なタイプに合うようにするために、上の永続的なデータベースプロジェクト(プロジェクトC)を想定してもいいです)とOracleの永続的な設計(プロジェクトB)、プロジェクトCの持続的なデザイン私たちのプロジェクト(プロジェクトD)の使用は、ドライバーと導入のOracleのMySQLドライブの両方にそれを導入することは不可能であるので、我々は明示的に指定する必要があり、これは真実であります

実際のケース

春ブーツ・アクチュエータ pom.xmlファイル、20以上の依存がオプションであるあります

春ブーツは、最終的にあなたのjarファイルのパッケージをパックする必要はありませんも頼ることはできないので、瓶のパッケージプロジェクトは、最終的には20以上で使用したい場合は、このjarファイルに依存含まれません生成された春のブートアクチュエータを使用しているので一つは、明示的にプロジェクトにうまく追加しました

次の記事では、スタータが、この記事のプロジェクトCの役割に似た他の奉仕プロジェクトのための特定の機能、に含まれているため、カスタム春ブーツスターターは、この戦略であり、ここではあなたはまだオプションの謎を理解できますか?

逆に適用

プロジェクトCはプラスの導入に依存しない場合は<optional>true</optional>、プロジェクトDプロジェクトCに依存する必要がありますが、プロジェクトにそれを行うためのクラスを使用する唯一の方法?Mavenは理解するためのコードの一部に、と言って、あまりありませんが、キーワードの除外を使用して、また、溶液であります:

<dependencies>
    <dependency>
      <groupId>top.dayarch.demo</groupId>
      <artifactId>Project-C</artifactId>
      <exclusions>
        <exclusion>
          <groupId>top.dayarch.demo</groupId>
          <artifactId>Project-B</artifactId>
        </exclusion>
      </exclusions> 
    </dependency>
</dependencies>

概要

ここでは、あなたが将来的に機能的な依存性を設計するとき、あなたは依存関係をどのように設計するかを理解する必要があり、私は自分の食べ物を食べるために何を、あなたがデザインしたものを食品に依存して簡単な言葉で、オプションでフォームの使用を推奨するためにここにいます、「カイが開催します「我々は、標準的なアナログ公式スターターカスタムを作成し、似ている...... ブログのアクセスが正常に戻り、交換を歓迎

ソウルの質問

  1. 子供用の靴のプロジェクトチームのGradleの多くは、ビルドツールがあり、Gradleのは、それによってどのように表現されるかご存知ですか?
  2. カスタムスターターは、あなたが知っている公式の標準スターターの構造はどのようなことでしょうか?

生産性ツールを改善


継続的な社会的関心番号へようこそ:「アーチ日の兵士」

  • ドライ最先端のJavaテクノロジーの共有
  • 生産性ツールの概要|返信「ツール」
  • 面接の質問と回答の分析
  • テクニカルデータ収集|返信する「情報」

複雑な問題、問題プログレッシブ技術的な問題の原則の具体的な抽象的でグラフィカルな分解の簡素化に合わせて、楽しい学習のJavaテクノロジー・スタック関連の知識を考え探偵小説を読みやすい、技術を更新し続け、ご期待ください......

おすすめ

転載: www.cnblogs.com/FraserYu/p/11796301.html