我们有几个项目,并且彼此之间有依赖关系。例如,我们有一个依赖于项目foo的项目栏。 foo项目是我们希望包含在所有其他项目中的SDK(基础库),因为我们发现我们一次又一次地解决了同样的问题。如何使用TeamCity包含另一个项目中的另一个项目的DLL
目前项目foo和bar是独立构建的,bar项目有对foo.dll的引用,它存储在SVN的bar \ lib文件夹中。因此,如果我们对foo项目进行任何更改,那么我们必须采取最新的构建,检查栏项目并复制新的DLL并再次提交。这是一个小手册,烦人。特别是因为我们现在有大约3或4个依靠foo图书馆的项目。
我不想把所有东西都放在一个解决方案中,因为这看起来有点愚蠢。 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 2011-12-20 08:38:33