Che*_*rry 8 java maven parallel-builds
我已阅读有关Maven的并行构建配置此。那么如何显示所有非线程安全插件呢?Maven 中是否有类似“plugin-not-safe-list”的命令?
REM something like that to display all p[lugins without @threadSafe annotation
mvn help:plugin-not-safe-list
Run Code Online (Sandbox Code Playgroud)
您可以为maven-enforcer-plugin编写自定义规则并将其用于在您的 maven 项目上运行。
您可能还想使用mojo-executor解析plugin.xml文件以检查其“线程安全”属性。
关于何时以及为何应该使用上述内容的一些详细说明。当您在 CI/CD 环境中工作,并且希望通过 maven 进行并行编译时,您应该不断监控您的开发人员没有添加非线程安全的插件,以确保 CI/CD 的一致性和正确性。为了实现这一点,您可以使用上面提到的带有自定义规则的maven-envorcer-plugin。您的自定义规则可以使用Maven Plugin API(maven项目等)来搜索项目中的所有插件,然后使用mojo -executor lib来读取threadSafe每个插件的属性(因为maven API不不提供)。mojo-executor lib 具有用于解析属性所在plugin.xml的 Maven 插件文件的工具threadSafe。一旦找到,您就可以使 Maven 构建失败。
如果您只想查看非线程安全插件的列表,您可以使用相同的技术,只列出属性threadSafe为 false 的插件。然后,您可以将其配置maven-enforcer-plugin为使用自定义规则(例如,项目的配置文件),并通过命令行在单个 Maven 命令中运行它。
顺便说一句,当您在开发项目中发现非线程安全插件并且没有线程安全替代品时会发生什么,这是另一个问题,这也是可以解决的。