问题标签 [maven-extension]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
650 浏览

java - 用于动态更新依赖版本的 Maven 插件/扩展

我想动态分配我的 Maven 项目的依赖项版本(请不要问为什么 - 我知道这不是一个可取的模式)。据我了解,我必须创建 Maven 扩展来实现这一点,因为调用常规插件为时已晚。

所以,我尝试在 EventSpy 中捕获 Maven 事件,我也尝试过 AbstractMavenLifecycleParticipant。使用这些我可以收到通知,但如何实际进行更改本身 - 如何让 Maven 开始使用这个新的更新版本?我想我需要以某种方式更改 Maven 反应器中的依赖版本....但是如何?

我知道 maven-version-plugin 中有解决方案,但这需要将其作为两步工作:首先操作 pom.xml,然后运行实际构建。但是我需要在一次 maven 运行中完成它。

请问有什么想法吗?提前致谢。

编辑

示例 pom.xml 文件来说明情况

库模块:

  • 我的 lib pom.xml

    /li>
  • 我的应用程序 pom.xml

    /li>

现在,当我构建 my-app 时,我需要根据我在 nexus 中找到的最新发布版本动态分配 my-lib 版本(我知道如何获得正确的版本 - 假设它是 1.0.5)。但是如何进行某种预处理来改变反应堆中的版本,以便 Maven 然后使用 1.0.5 版本?

0 投票
0 回答
110 浏览

maven - 依赖管理可以为 Maven 扩展定义版本吗

已将 wagon-webdav-jackrabbit 定义为 Parent POM 中的扩展,Parent POM 使用依赖管理 POM。

父 POM 为 wagon-webdav-jackrabbit 定义了扩展

DependencyManagement POM 为 wagon-webdav-jackrabbit 定义了版本

构建父 POM 会拉取 wagon-webdav-jackrabbit 的最新版本,即 3.3.1,而不是依赖管理 POM 中提供的指定版本,即 2.10。

扩展的情况下,依赖管理中指定的版本会不会生效?依赖管理可以为 Maven 扩展定义版本吗?

0 投票
0 回答
719 浏览

java - Maven 扩展在构建期间不活动

我正在尝试创建一个新的 Maven 扩展。${maven.projectBasedir}/.mvn/extensions.xml但是,当我使用扩展中声明的扩展运行 maven 构建时,ExecutionListener将不会监听。

我的pom.xml扩展是:

执行监听器是这样的:

生成components.xml的是:

并且META-INF/maven/extension.xml是:

我尝试在另一个项目中运行上述扩展pom.xml

并拥有./.mvn/extensions.xml

运行此构建时,我可以看到正在尝试从 maven repo 下载扩展。但是扩展没有其他任何事情发生。

由于执行侦听器中强制执行各种异常,我预计会看到构建失败。但是构建成功。

我缺少什么以便在构建中使用扩展的执行侦听器?

我正在使用 Maven:

编辑:
问题也报告给 Maven 问题跟踪器: https ://issues.apache.org/jira/browse/MNGSITE-379

0 投票
2 回答
449 浏览

drools - kie-maven-plugin:7.36.1.Final 使用 Maven 的插件扩展依赖错误

将 Drools 从 6.5.0.Final 迁移到 Drools 7.36.1.Final ,我在解决 org.kie:kie-maven-plugin:7.36.0.Final 依赖问题时遇到问题,如下所示

POM 条目

0 投票
0 回答
134 浏览

sonar-maven-plugin - sonar-maven-plugin & opentelemetry-maven-extension:声纳插件失败(找不到类)

当我的 pom.xml 中同时存在 opentelemetry-maven-extension 和 sonar-maven-plugina 时,我遇到了问题。

该命令总是失败(本地 env 和 ci),没有为扩展设置 ENV 变量。

我不知道如何解决这个问题,也没有在 SO 或专门的论坛上找到任何解决方案。我希望有人能给我一些关于如何修复/调试这个的指示。

笔记:

当扩展配置为发送跟踪时,该命令也会失败。

它适用于弹簧插件

错误

这是我的 pom.xml

Maven信息

0 投票
0 回答
25 浏览

java - Maven Enforcer 扩展

我刚刚发现了 Maven Enforcer Extension

https://maven.apache.org/enforcer/maven-enforcer-extension/usage.html

我想知道是否可以在实际项目之外配置它,例如在settings.xmlMaven 安装或命令行中。

我看到加载扩展可以通过在 Maven 安装中添加一个 JAR 来完成,但是仍然需要在某处配置规则。

用例:我们想为我们所有的项目强制执行一些规则,但不幸的是,有些项目不能使用公司父 POM。由于我们有超过 1000 个项目,如果有一些独立于项目的方式来实现这一点,那就太好了。

编辑

似乎配置文件的位置是硬编码的:

https://github.com/apache/maven-enforcer/blob/enforcer-3.0.0/maven-enforcer-extension/src/main/java/org/apache/maven/extensions/enforcer/EnforceExtension.java#L56

所以我可能需要派生插件,或者在 Maven 构建之前“即时”创建文件。