In general, I recommend that projects remain separate as far as it makes sense (your second option). This tends to facilitate reuse. (If I want only Dependency2, I don’t need to cite the whole other project to get to it.)
However, you must be smart about what your addictions will really do. For example, if Dependency2 is only a dependency for Project1, then it probably should only exist in the source structure of Project1. (Note: I do not mean separate branches and tags for Dependency - I mean that it will be another package or another subproject in Project1.)
, , -. . . , , , , . , . (, , , .)
№2 , . , .
- A Project1.
- B Dependency1, Project1.
- , B , Dependency1 ( - , DLL - ). . : Dependency1-v1.0.0
- A Dependency1-v1.0.0 . ( , /lib - .)
- , A , .
, Team A Dependency1 . , , . A , . , B.
, , . , , , , , . , .