首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Maven部署插件- deployAtEnd不工作

Maven部署插件- deployAtEnd不工作
EN

Stack Overflow用户
提问于 2016-03-31 08:34:08
回答 2查看 5.4K关注 0票数 10

我在多模块项目中使用maven部署插件,将deployAtEnd属性设置为true

在根项目中执行mvn deploy之后,对每个子项目执行deployment -我可以看到这样的情况:[INFO] --- maven-deploy-plugin:2.8.2:deploy (default-deploy) @ subproject-name --- [INFO] Deploying package:subproject-name:v1.1 at end最后一次调用用于根项目:[INFO] --- maven-deploy-plugin:2.8.2:deploy (default-deploy) @ parent-project --- [INFO] Deploying package:parent-project:v1.1 at end --仅此而已,没有执行实际部署。

如何使用deployAtEnd=true使部署插件在多模块项目中正确工作

EN

回答 2

Stack Overflow用户

发布于 2017-11-27 20:13:56

当我们今天刚刚遇到这个问题时,我在maven-部署插件中找到了相关的问题:

https://issues.apache.org/jira/plugins/servlet/mobile#issue/MDEPLOY-193

Jér me Joslet对此问题的解释:

我今天发了这个问题,找到了一个解决办法。 maven部署插件将其状态记录在静态变量中。一个用于堆叠部署请求(deployRequests),另一个用于计数就绪项目(readyProjectsCounter)。当出现问题时,有多个静态变量用于计数就绪项目。当有多个类加载器加载部署插件的类时,就会发生这种情况。这将导致多个类实例和多个静态变量实例。有些模块依赖于一个实例,而另一些模块则依赖于另一个实例。 其结果是,部署插件从不刷新其挂起的部署请求,因为没有计数器等于反应堆中的项目数量。 如以下文档所述:https://svn.apache.org/repos/infra/websites/production/maven/content/reference/maven-classloading.html: 对于使用构建扩展的项目,插件类加载器连接到项目类加载器。这使插件代码可以访问Maven API包和由项目构建扩展导出的包。Maven将为每个唯一的插件+依赖+构建扩展组合创建一个和唯一一个类加载器。 和 Maven保证,对于每个唯一的项目构建扩展集,只有一个项目类加载器,所有具有构建扩展集的项目都将使用相同的类加载器。 解决方法是在父项目中声明所有扩展插件及其所有额外的<dependencies>。这确保相同的类加载器用于在所有模块中加载插件。

票数 7
EN

Stack Overflow用户

发布于 2016-05-19 18:16:30

今天,我在我的项目中解决了同样的问题。

问题模块有扩展(<extension>标记)。它们违反了maven部署插件中构建的模块的计数器。

为了修复它,我将<extension> 移到根POM.中。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36328154

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档