2つのプロジェクトがあり、それぞれに依存関係があります。たとえば、プロジェクトfooに依存するプロジェクトバーがあります。 fooプロジェクトは、同じ種類の問題を何度も何度も解決していることが分かっているため、他のすべてのプロジェクトに含めるSDK(ベースライブラリ)です。TeamCityを使用して別のプロジェクトのDLLを別のプロジェクトに含めるにはどうすればいいですか
現在、プロジェクトfooとbarは独立してビルドされており、barプロジェクトはfoo.dllへの参照を持ち、SVNのbar \ libフォルダに格納されています。したがって、fooプロジェクトを変更した場合は、最新のビルドを実行して、バープロジェクトをチェックアウトし、新しいDLLをコピーして再度コミットする必要があります。これは少し手作業で迷惑です。特にfooライブラリに依存しているプロジェクトが3〜4件ほどあるためです。
これは少しばかげているので、私は1つの解決策にすべてのことを固執したくありません。 fooプロジェクトはそれを頻繁に変更すべきではなく、SDKを提供します。彼らはお互いに関連していません。私たちはすでに、関連プロジェクトをソリューションにまとめています。私たちはすでにテストプロジェクトを行っている4-5プロジェクトのソリューションをいくつか持っています。すべてを固執すれば、40〜50のプロジェクトで解決策が生まれ、それは悪夢のようだ。
私がTeamCityで達成したいのは、Fooに変更が加えられた場合、Fooの更新されたDLLを使用して新しいビルドのビルドを自動的にトリガーするということです。そうすれば、誰かが急激な変化を起こすとすぐに見つけることができます。そして、犯人は、バギーコミットを修正するか、すべての依存プロジェクトに必要な変更を加えなければなりません。
TeamCityで構築したソリューションのほとんどは、ユニットテストを実行し、成果物を作成しています。私はfooビルドのbarビルド設定でアーティファクト依存関係をセットアップしようとしました。これにより、foo \ build \ release \ foo.dllがbar \ lib \ foo.dllにコピーされます。現時点でエラーが発生する
Failed to resolve artifact dependency xxx ... java.io.FileNotFoundException ... Access Denied
私たちが試みていることを実行するベストプラクティスは何ですか?私たちは正しい方法をとっていますか?私たちが正しい方法でこれをやっているなら、このエラーをどうやって解決するのでしょうか?
+1努力のため。ありがとう – uriDium