Open source 如何管理使用第三方开源库的项目的目录结构?

Open source 如何管理使用第三方开源库的项目的目录结构?,open-source,directory-structure,Open Source,Directory Structure,我开发了一个开源应用程序。我的项目的目录结构是: app |-include |-src |-doc |-build |-lib |-bin 我想使用另一个开源库。有一些选择: 将第三方库源代码添加到include和src目录 编译第三方库并添加到include和lib目录 创建一个第三方目录,并向其中添加第三方库的完整源代码 创建一个第三方目录,并向其中添加第三方库的编译版本 最好的选择是什么?有没有更好的方法来管理使用第三方开源库的项目的目录结构? 如果您曾经计划升级第三方库,那么将其

我开发了一个开源应用程序。我的项目的目录结构是:

app
|-include
|-src
|-doc
|-build
|-lib
|-bin
我想使用另一个开源库。有一些选择:

  • 将第三方库源代码添加到
    include
    src
    目录
  • 编译第三方库并添加到
    include
    lib
    目录
  • 创建一个
    第三方
    目录,并向其中添加第三方库的完整源代码
  • 创建一个
    第三方
    目录,并向其中添加第三方库的编译版本
最好的选择是什么?有没有更好的方法来管理使用第三方开源库的项目的目录结构?

  • 如果您曾经计划升级第三方库,那么将其保存在特定的子目录中将更加方便。你不必有一个特定的“第三方”目录;你可以用图书馆的名字来命名

  • 考虑一下版本控制中的内容

    • 如果要将第三方库复制到存储库中,则不应包含已编译的产品(改为使用源代码),因为它们通常不可能区分并且是特定于平台的
    • 如果用户打算单独获取库并将其添加到项目的树中,那么使用子目录将更容易取消归档,并保证不会有任何名称冲突;源代码与二进制代码的比较应由用户决定
    • 在另一个极端,如果您使用的是VCS管理的引用(如SVN externals或Git子模块),则可能必须将源代码包含在子目录中

根据您的情况,您应该记住的一个问题是,您是否有一天必须对这些第三方开源组件和许可证的合规性等进行说明。。如果您将第三方文件保存在它们自己的目录中,则可以更轻松地管理此类内容。将未修改的源代码和许可证放在手边,并有一个链接返回到您获得源代码的地方,然后可以再次获得它,这也会很有用。我曾在一些公司工作过,那里有许可证合规性验证流程,如果第三方来源以这种方式隔离,则更容易通过这些流程

与此相关