Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/meteor/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Maven:如何比较多模块项目中两个模块的子模块?_Maven_Module_Maven Dependency Plugin - Fatal编程技术网

Maven:如何比较多模块项目中两个模块的子模块?

Maven:如何比较多模块项目中两个模块的子模块?,maven,module,maven-dependency-plugin,Maven,Module,Maven Dependency Plugin,我有一个多模块项目,有两个模块a和B。它们都有自己的模块,这里称为子模块 我想对这两种类型的模块做一些比较。例如,我想检查A的所有子模块在B中是否都应有关联的子模块。我如何才能做到这一点 我查看了maven enforcer插件,但我只找到了管理插件和依赖项的示例,而没有找到模块 到目前为止,我已经能够使用以下命令从中打印出A的子模块列表: 但当我尝试将其输出到这样的文件时: mvn dependency:list -DoutputFile="foo.txt" 我看到foo.txt是在A的每个

我有一个多模块项目,有两个模块a和B。它们都有自己的模块,这里称为子模块

我想对这两种类型的模块做一些比较。例如,我想检查A的所有子模块在B中是否都应有关联的子模块。我如何才能做到这一点

我查看了maven enforcer插件,但我只找到了管理插件和依赖项的示例,而没有找到模块

到目前为止,我已经能够使用以下命令从中打印出A的子模块列表:

但当我尝试将其输出到这样的文件时:

mvn dependency:list -DoutputFile="foo.txt"
我看到
foo.txt
是在A的每个子模块中创建的,而不是在模块A(聚合器)中创建的。我需要一个包含依赖项列表的文件,从中我可以使用

grep maven-dependency-plugin | awk '{ print $(NF-1) }'
所以我需要两件事: 1.将聚合器的
依赖项:列表
依赖项:树
输出到一个文件中,然后 2.在整个项目中,读取模块A和模块B中的两个文件,并有一种方法来进行一些比较和输出结果(如果比较结果不理想,则生成失败)

任何指示都会有帮助

编辑:

澄清我需要在项目的构建(
mvn clean install
)过程中,每次构建时都要执行这些操作

  • 在一个文件中为聚合器输出dependency:list或dependency:tree
  • 只需调整命令,从中获取模块的所有子模块的列表,就可以将其所有子模块的重定向列表保存到一个文件中,如下所示:-

    mvn --also-make dependency:tree | grep maven-dependency-plugin | awk '{ print $(NF-1) }' >> subModuleList.txt
    
  • 在整个项目中,读取模块A和模块B中的两个文件,并有一种方法来进行比较和输出结果(如果 比较给出了一个不期望的结果)

  • 对于比较的情况,假设您在本阶段手头有两个文本文件,即
    subModuleListA.txt
    subModuleListB.txt
    。您可以编写一个测试来解析这些文件并比较它们的元素。由于不期望的结果,此测试应该失败,因此标记为完整的生成失败(我希望还可以记录失败的原因)。

    如何在生成过程中添加生成txt文件的机制?因为我们希望每次有人构建项目时都能进行此测试。
    mvn --also-make dependency:tree | grep maven-dependency-plugin | awk '{ print $(NF-1) }' >> subModuleList.txt