`

kit based dependency management

阅读更多
For kit based dependency management,  I found that “importing dependencies” in maven will serve this purpose very well.   For example ,we have two kit cib-kit and rm-kit,

In cib-kit, we can specify the artifacts need to be exposed to other kit and their versions.

 

  <dependencyManagement>

     <!-- managed dependency -->

     <!-- only artifacts visible to external project /kit -->

      <dependencies>

        <dependency>

          <groupId>com.msci</groupId>

          <artifactId>cib-api</artifactId>

          <version>2.1-SNAPSHOT</version>

        </dependency>

      </dependencies>

  </dependencyManagement>

 

While on RM-side, in the rm-kit pom, we can import all exposed artifacts as dependencies from cib-kit

  <dependencyManagement>

     <!-- only artifacts visible to external project /kit -->

      <dependencies>

        <dependency>

          <groupId>com.msci</groupId>

          <artifactId>cib-kit</artifactId>

          <version>${cib.kit.version}</version>

          <type>pom</type>

          <!-- import all managed dependencies defined in cib kit pom-->

          <!-- in this case only cib-api will be imported -->

          <scope>import</scope>

        </dependency>

      </dependencies>

  </dependencyManagement>

  

In RM projects,  the imported dependencies are be directly used without specifying a version. The version will be resolved to the right one defined in cib-kit.

<dependencies>

    <dependency>

      <groupId>com.msci</groupId>

      <artifactId>cib-api</artifactId>

      <!-- no need to specify version here   version imported will be used -->

    </dependency>

   </dependencies>

 

Please refer to enclosed slides and sample project files for more details.

 

What to be exposed and  what versions are  are “controlled” by the kit providing dependencies,  and this will make the life of downstream kit much easier, and the same case for the build script.  Also for the whitelist, we can provide a BOM pom  as a kit which explicitly specify  all the dependencies.

 

For kit based release process, we can reuse most of current built script and to make it easy to adopted

 

For the first phase of the build tool,  we need to

a.       Update parent pom files (like RM-parent)  to turn them into “kits” by adding dependency management – specify what  artifacts inside the kid should be exported, and also what kids are to be imported.  For the versions, we can use SNAPSHOT or versioned SNAPSHOT for branching like 7.63-SNAPSHOT.

b.       Reuse current build script for kit build and release. we don’t need to update versions of a particular artifacts but to update the kit pom to ensure right kits are imported and right artifacts are exported.

c.       Provide maven plugins to allow this tool to be easily adopted for beginners.  These plugins will

a)       install python and related modules if they are not installed.

b)       Check out kit pom by specify a kit name (we should have a default location to store all kit information)

c)       Invoke build and release script.

d)       Invoke regression test script

d.       Integrate with jerkins or some build server – that should be direct forward since we can provide a maven command to jerkins.

  • 大小: 222.3 KB
分享到:
评论

相关推荐

    Apache Maven Dependency Management

    An easy-to-follow, tutorial-based guide with chapters progressing from basic to advanced dependency management. Who this book is written for If you are working with Java or Java EE projects and you ...

    Gradle.Dependency.Management.1784392782

    Gradle Dependency Management defines dependencies for your Java-based project and customizes how they are resolved. You will learn how to configure the publication of artifacts to different ...

    dependencyManagement与dependencies区别.docx

    在Maven项目中,`dependencyManagement`和`dependencies`元素都是用来管理项目依赖的重要部分,但它们的作用方式有所不同。理解这两个元素的区别对于构建稳定、可维护的多模块项目至关重要。 一、dependency...

    Maven dependencies与dependencyManagement的区别详解

    今天,我们将详细介绍 Maven 依赖管理机制中的两个重要概念:dependencies 和 dependencyManagement。 dependencies dependencies 是 Maven 项目中最基本的依赖管理机制。它定义了项目中需要的依赖项,包括 jar 包...

    袁蕴哲__Bidirectional Transition-Based Dependency Parsing1

    Bidirectional Transition-Based Dependency Parsing 本文总结了 Bidirectional Transition-Based Dependency Parsing 的相关知识点。Bidirectional Transition-Based Dependency Parsing 是一种基于转换的依存句法...

    Maven 实战问题和最佳实践.pdf

    1、dependencies 和 dependencyManagement,plugins 和 pluginManagement 有什么区别? dependencyManagement 是表⽰依赖 jar 包的声明,即你在项⽬中的 dependencyManagement 下声明了依赖,maven 不会加 载该依赖...

    Declarative dependency management for Matlab.zip

    "Declarative dependency management for Matlab.zip" 提供了一种声明式的方式来解决这个问题,旨在简化和标准化Matlab项目的依赖管理过程。这个压缩包可能包含了一个名为`ToolboxToolbox-master`的主项目文件夹和一...

    dependency-management-plugin:一个Gradle插件,提供类似Maven的依赖项管理功能

    依赖管理插件 ... 要了解有关使用Dependency Management插件的更多信息,请参阅其。 贡献 该项目的贡献者同意遵守其。 是受欢迎的。 有关详细信息,请参见。 执照 依赖性管理插件是在下发行的开源软件。

    Packt.Gradle.Dependency.Management

    Packt.Gradle.Dependency.Management

    GradleDependencyManagement:Gradle依赖的统一管理

    Gradle常用命令 windows往掉前面的./ ./gradlew //下载更新gradle ./gradlew -v //版本号 ./gradlew assemble //构建项目输出 ./gradlew check //运行检测和测试任务 ./gradlew clean //清除build文件夹 ...

    maven-dependency-management-extension-1.0.1.jar

    maven-dependency-management-extension-1.0.1.jar

    maven-dependency-management-extension-1.0.0.jar

    maven-dependency-management-extension-1.0.0.jar

    maven-dependency-management-extension-1.1.0-sources.jar

    maven-dependency-management-extension-1.1.0-sources.jar

    maven-dependency-management-extension-1.0.1-sources.jar

    maven-dependency-management-extension-1.0.1-sources.jar

    maven-dependency-management-extension-1.0.0-sources.jar

    maven-dependency-management-extension-1.0.0-sources.jar

    Dependency Walker_x64

    Dependency Walker,通常缩写为Depends,是一款强大的系统分析工具,尤其在软件开发领域中,它扮演着不可或缺的角色。此工具主要用于检测Windows应用程序所依赖的动态链接库(DLL)文件,帮助开发者找出程序运行时...

    spring-ai-core-0.8.1

    spring-ai-core 0.8.1,解决大家使用2023.0.1.0 版本 Spring Cloud Alibaba 依赖,代码依赖下载报错问题,&lt;dependencyManagement&gt; &lt;dependency&gt; &lt;groupId&gt;com.alibaba.cloud&lt;/groupId&gt; &lt;artifactId&gt;spring-cloud...

    dependency-check-7.1.1-release

    依赖检查工具dependency-check是软件开发领域中用于检测项目依赖库是否存在已知安全漏洞的重要工具。在版本7.1.1中,它提供了最新的安全数据库和改进的分析功能,以帮助开发者确保他们的应用程序免受潜在的安全威胁...

    sqlDependency实例代码

    `SqlDependency`是.NET Framework提供的一种机制,它允许应用程序检测SQL Server数据库中的数据更改,从而实现数据变化的即时响应。本实例将详细介绍如何使用`SqlDependency`在Winform应用中监控SQL Server数据库,...

    dependency walker 64位版

    Dependency Walker,通常被称为依赖项浏览器或Depends,是一款强大的系统工具,主要用来分析Windows应用程序及其动态链接库(DLL)的依赖关系。64位版本的Dependency Walker是专门为处理64位Windows操作系统上的程序...

Global site tag (gtag.js) - Google Analytics