Maven部署插件-部署结束不工作
我在多模块项目中使用maven deploy插件,其Maven部署插件-部署结束不工作,maven,maven-deploy-plugin,Maven,Maven Deploy Plugin,我在多模块项目中使用maven deploy插件,其DeployateEnd属性设置为true 在根项目中执行mvn deploy后,将为每个子项目执行deploy插件-我可以看到如下内容: [信息]---maven部署插件:2.8.2:deploy(默认部署)@subproject name--- [信息]部署包:子项目名称:末尾为v1.1 最后一次调用用于根项目: [信息]---maven部署插件:2.8.2:deploy(默认部署)@父项目--- [信息]部署包:父项目:结束时为v1
DeployateEnd
属性设置为true
在根项目中执行mvn deploy
后,将为每个子项目执行deploy插件-我可以看到如下内容:
[信息]---maven部署插件:2.8.2:deploy(默认部署)@subproject name---
[信息]部署包:子项目名称:末尾为v1.1
最后一次调用用于根项目:
[信息]---maven部署插件:2.8.2:deploy(默认部署)@父项目---
[信息]部署包:父项目:结束时为v1.1
仅此而已,不会执行实际部署
如何使deploy插件在具有
deployAtEnd=true
的多模块项目中正确工作?今天,我在项目中解决了相同的问题
问题模块有扩展(
标记)。它们违反了maven deploy插件中内置模块的计数器
为了修复它,我将
移动到根POM。今天我们刚刚遇到这个问题,我在maven deploy插件中发现了相关问题:
本期Jérôme Joslet外植:
我今天发布了这个问题,并找到了解决方法
maven部署插件在静态变量中记录其状态。一个
堆叠部署请求(deployRequests
)和另一个用于计数的请求
就绪项目(readyProjectsCenter
)。当问题发生时,有
用于计算就绪项目的静态变量不止一个。这
当有多个类加载器加载部署时发生
插件的类。这会导致多个类实例和多个
静态变量实例。某些模块依赖于一个实例,并且
其他模块在另一个模块上
结果是部署插件
从不刷新其挂起的部署请求,因为没有计数器等于
反应堆中的项目数量
如下文所述
文件::
对于使用构建扩展的项目,插件类加载器是
连接到项目类加载器。这使得插件代码可以访问这两个
Maven API包和项目构建导出的包
扩展。Maven将为每个类创建一个且仅一个类加载器
独特的插件+依赖项+构建扩展组合
及
Maven保证每个项目都有且只有一个项目类加载器
唯一的项目构建扩展集和相同的类加载器将
可由具有生成扩展集的所有项目使用
解决方法是声明所有扩展插件及其所有额外插件
,在父项目中。这就保证了
classloader用于加载所有模块中的插件
在所有模块的末尾,您没有看到将工件部署到存储库的输出?您是否使用自定义maven插件来定义自己的生命周期?@khmarbaise正确,没有与部署相关的输出。我没有使用任何自定义插件(至少我认为是这样,我如何验证它?)你能显示完整的日志输出吗?否则很难看出有什么问题吗?@khmarbaise我正在准备一些简单的示例。同时,我注意到,如果我在插件定义中加入显式执行:
deploy
,那么部署就开始了,但是,在序列中的一些子项目中,要清楚的是,我使用了AdvaseDATAN很长时间,有500个模块,没有任何问题……所以我假设还有其他问题。