问题标签 [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.
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 版本?
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 扩展定义版本吗?
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
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 条目
sonar-maven-plugin - sonar-maven-plugin & opentelemetry-maven-extension:声纳插件失败(找不到类)
当我的 pom.xml 中同时存在 opentelemetry-maven-extension 和 sonar-maven-plugina 时,我遇到了问题。
该命令总是失败(本地 env 和 ci),没有为扩展设置 ENV 变量。
我不知道如何解决这个问题,也没有在 SO 或专门的论坛上找到任何解决方案。我希望有人能给我一些关于如何修复/调试这个的指示。
笔记:
当扩展配置为发送跟踪时,该命令也会失败。
它适用于弹簧插件
错误
这是我的 pom.xml
Maven信息
java - Maven Enforcer 扩展
我刚刚发现了 Maven Enforcer Extension
https://maven.apache.org/enforcer/maven-enforcer-extension/usage.html
我想知道是否可以在实际项目之外配置它,例如在settings.xml
Maven 安装或命令行中。
我看到加载扩展可以通过在 Maven 安装中添加一个 JAR 来完成,但是仍然需要在某处配置规则。
用例:我们想为我们所有的项目强制执行一些规则,但不幸的是,有些项目不能使用公司父 POM。由于我们有超过 1000 个项目,如果有一些独立于项目的方式来实现这一点,那就太好了。
编辑
似乎配置文件的位置是硬编码的:
所以我可能需要派生插件,或者在 Maven 构建之前“即时”创建文件。