質問

Javaビルドシステムでパッケージの依存関係に制限を適用する可能性はありますか?たとえば、 myapp.server.bl.Customer クラスは、 myapp.client.ui.customlayout パッケージを参照できません。 AntベースまたはIDE固有のソリューションに興味があります。

(カスタム)パッケージの依存関係規則に違反し、ビルドが中止されたことを示すエラーメッセージをビルドで受け取りたいのですが。また、AntスクリプトまたはIDEプロジェクトファイルの外部のリスト、できればテキストファイルで依存関係を維持したいと思います。

(私はMavenを知りませんが、モジュールの依存関係管理のサポートが改善されていることをここで読みました)

役に立ちましたか?

解決

Checkstyleにはそのためのチェックがあると思います。 インポートコントロール

他のヒント

Eclipseプロジェクトを設定して、アクセスルールを指定できます。アクセスルールでは、「禁止」、「ディスコレージド」、「アクセス可能」を指定できます。レベルはすべてワイルドカードルールを使用します。その後、ビルド中に警告またはエラーとしてフラグを立てるように、DiscouragedまたはForbiddenの違反を構成できます。

アイデアに関する古い記事の種類(詳細は最新ではない可能性があります):

http://www.eclipsezone.com/eclipse/forums/t53736.html

Eclipse(またはOSGi)プラグインを使用している場合、" public"プラグイン/モジュールの一部は明示的に定義されており、これはモデルの一部です。

ivy は、(antを使用している場合)問題の良い解決策のようです。 IvyはAntの公式な依存関係管理コンポーネントであり、antとうまく統合されます。依存関係の解決、競合の処理、除外の作成などが可能です。

依存関係を記述するために単純なxml構造を使用し、依存関係の解決の問題のみに対処しようとするため、Mavenよりも使いやすいです。

Ivyホームページから:

Ivyは、プロジェクトの依存関係を管理(記録、追跡、解決、およびレポート)するためのツールです。次の特徴があります。

  1. 柔軟性と設定可能性-Ivyは本質的にプロセスにとらわれず、どの方法論や構造にも縛られていません。代わりに、必要な柔軟性と構成可能性を提供して、広範な依存関係管理およびビルドプロセスに適応させます。
  2. Apache Antとの緊密な統合-Ivyはスタンドアロンツールとして使用できますが、Apache Antと特に連携して、依存関係の解決から依存関係のレポートと公開に至るまで、多数の強力なAntタスクを提供します。

IDE固有のソリューションの場合、IntelliJ IDEAには依存関係分析ツールがあり、無効な依存関係も定義できます。 http://www.jetbrains.com/idea/webhelp2/dependency- validation-dialog.html

依存クラスの編集中に、コンパイル時とライブ時の両方で依存関係違反が表示されます(右側のエラーバーにエラー/警告ストライプとして表示されます)。

JetBrainsのTeamCityビルドサーバーを使用すると、さらに多くの自動化を取得できます。これにより、検査ビルドを実行し、上記の構成済みチェックをレポートできます。

別のIDE独立ソリューションの場合、AspectJを使用して無効な依存関係を宣言できます(そして、問題の警告/エラー情報を取得するために、ビルドプロセスにステップを統合します)。

Eclipseは、ビルドパスプロパティ/ jarプロパティを介してこれをサポートしています。私はそれがjar /プロジェクトの境界を越えてのみ動作するかもしれないと思う。

多分 Classsycle を使用できます: http://classycle.sourceforge.net/ddf.html

IDEAまたはMavenで複数のモジュールを使用するか、EclipseおよびGradleで複数のプロジェクトを使用できます。概念はすべての場合で同じです。

簡単な解釈は、 myapp.server.bl のモジュールと、 myapp.client.ui.customlayout のモジュールであり、どちらにもコンパイル時の依存関係はありません。これで、反対側のモジュール/プロジェクトに対してコードをコンパイルしたり、コードを完了しようとすると、必要に応じて失敗します。

問題の規模を監査するために、IntelliJ IDEAの有用な出発点は、依存関係の分析です:

http://www.jetbrains.com/idea/webhelp/analyzing -dependencies.html

その記事から、プロジェクトの依存関係分析の実行方法と実行方法を確認できます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top