Simulink项目依赖管理和依赖解决

当项目在团队中进行并且项目依赖于不同的模型和库时,在Simulink项目中管理依赖关系的最佳实践是什么?

一个并行的例子是使用Gradle构建应用程序并声明项目的依赖关系,包括所需的版本号。 成绩将解析并下载构建项目所需的版本。

例如,以下声明依赖于library和版本1.0的2.1版以上的some-library ,以便可用的最新版本1.x(1.0,1.1,1.2 ...)将被下载和使用。

dependencies {
    compile("com.example:library:2.1")
    compile("com.example:some-library:1.+")
}

Simulink的文档(以及覆盖清单)似乎是在具有版本号的项目中讨论模型。 似乎没有提到导入到项目中的库。 仅在单个项目中使用的模型可以全部包含在整个项目中,但是如果在单独的项目或库(或在项目中定义的库)内定义的通用S-函数适用于(例如)适用的跨多个项目? 这个要求都是为了帮助支持由持续集成服务器(如Jenkins)触发的自动构建过程。

我对可以轻松支持依赖管理和使用Github Flow git分支策略自动依赖解决方案的工作流感兴趣。


我在这个问题上花了很多时间。 最后,我没有在网上找到合适的解决方案,但我想分享我们现在使用的并满足我们需求的工作流程。

简而言之:我们使用git子模块创建了自己的依赖关系管理。

假设:事实上,它更多的是持久依赖的版本管理,而不是提供动态添加新的或删除旧的包或库的可能性。 这也适用,但需要将git子模块添加到主git存储库或从主git存储库中删除。

目标:

  • 为项目工作的每个人提供一致的设置。
  • 可追溯性。
  • 持续集成,减少工作量。
  • 我们如何做(例如):

  • 我们在项目C中使用了项目A和项目B.
  • 所有这三个项目都在git版本控制下,并且仍在开发中。
  • 我们为项目A和项目B设置了其他版本库,例如位于网络驱动器上。
  • 在项目C中,我们将项目A和项目B的版本库添加为git子模块
  • 我们已经设置了某种自动部署来将相关文件推送到这些发行版存储库中。 例如,如果我们想要对项目B的项目B进行更改,则只能在项目B的存储库中创建一个版本标记,并将其推送到其发布存储库。
  • 在项目C中,我们更新了我们的git子模块,并且可以检出新的子模块版本(如果需要)。
  • 优点:

  • 由于git将检出的git子模块版本(提交)存储在主项目中,我们可以确保每个人都使用相同的文件。
  • 在主项目中更改子模块的提交是可追踪的。
  • 主项目和依赖关系始终保持一致。
  • 持续集成应该“开箱即用”。 我们正在使用GitLab和GitLab Runner,并且只需要设置我们的运行器以递归方式获取子模块(在嵌套子模块的情况下)。
  • 我认为只要存储库不会变得太大,这种方法就会起作用,因为您不仅仅取得所需的版本,而且还取得整个版本的历史。

    链接地址: http://www.djcxy.com/p/48305.html

    上一篇: Simulink Project dependency management and dependency resolution

    下一篇: Adding a project as a dependency in Xcode