问题标签 [maven-enforcer-plugin]
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.
maven-3 - 用于验证插件配置的 Maven 强制执行规则
构建一个执行器规则来验证有效 pom 中每个插件的配置在架构上是否可行?
我知道插件配置在使用前无法验证,但在构建中的任何时候都不验证它们是不可接受的。
pom.xml - maven-enforcer-plugin->
我正在使用 maven-enforcer-plugin 并且它运行良好。我试图了解如何使一些属性成为必需的和一些可选的。例如。我有一个名为 useGit 的属性。
- 当 useGit = true 时,我希望只强制执行 GIT 属性。
- 当 useGit = false 我希望只强制执行 SVN 属性。谢谢!
maven - Maven 执行器插件非常慢 - 省略,保留解释
我在我的项目中更新了一些依赖项的版本,构建变慢了,它在执行器插件处等待大约 5 分钟以上。我试图比较以前在 3 分钟内发生的构建的调试日志,与总共需要 8 分钟以上的调试日志相比,我提到的 5 分钟以上被执行者偷走了。我在日志中看到的唯一显着差异如下。没有错误或其他任何东西,而且这些日志移动缓慢。因此问题。如果有人知道这意味着什么以及我该如何通过这将有很大帮助
omitForNearer: 省略=commons-codec:commons-codec:jar:1.10:compile 保持=commons-codec:commons-codec:jar:1.10:compile
编辑
编辑 这就是我能得到的,从调试日志中提取了几行
omitForNearer:省略=com.mastercard.api:sdk-api-core:jar:1.4.31:compile keep=com.mastercard.api:sdk-api-core:jar:1.4.31:compile 18:55:41,514 [调试] omitForNearer: 省略=log4j:log4j:jar:1.2.14:test 保持=log4j:log4j:jar:1.2.14:compile 18:55:41,519 [调试]
omitForNearer: 省略=com.google.guava:guava: jar:26.0-jre:test 保持=com.google.guava:guava:jar:26.0-jre:compile 18:55:41,530 [DEBUG] omitForNearer:省略=org.apache.commons:commons-lang3:jar:3.4:测试保持=org.apache.commons:commons-lang3:jar:3.4:compile 18:55:41,550 [DEBUG] omitForNearer:省略=org.jmockit:jmockit:jar:1.35:测试保持=org.jmockit:jmockit:jar :1.35:compile 18:55:41,552 [DEBUG]
omitForNearer:省略=com.beust:jcommander:jar:1.72:compile keep=com.beust:jcommander:jar:1.72:compile 18:55:41,571 [DEBUG]
omitForNearer:省略=org.hamcrest:hamcrest-core:jar:1.3:编译保留=org.hamcrest:hamcrest-core:jar:1.3:编译18:55:41,608 [DEBUG]
omitForNearer:省略=org.slf4j:slf4j- api:jar:1.6.6:compile 保持=org.slf4j:slf4j-api:jar:1.6.6:compile 18:55:41,610 [DEBUG]
omitForNearer:省略=log4j:log4j:jar:1.2.14:compile 保持=log4j:log4j:jar:1.2.14:compile 18:55:41,651 [DEBUG]
omitForNearer:省略=commons-codec:commons-codec:jar:1.10:compile keep=commons-codec:commons-codec:jar:1.10 :compile 18:55:41,741 [DEBUG] omitForNearer:省略=joda-time:joda-time:jar:2.1:compile keep=joda-time:joda-time:jar:2.1:compile 18:55:41,748 [DEBUG]
omitForNearer: 省略=org.jdom:jdom:jar:1.1.3:compile 保持=org.jdom:jdom:jar:1.1.3:compile 18:55:41,756 [DEBUG]
omitForNearer: 省略=xpp3:xpp3:jar:1.1.4c:compile 保持=xpp3:xpp3:jar:1.1.4c:compile 18:55:41,759 [DEBUG]
omitForNearer:省略=org.apache-extras.beanshell:bsh:jar:2.0b6:编译保留=org.apache-extras.beanshell:bsh:jar:2.0b6:编译18:55:41,790 [DEBUG] omitForNearer:省略= com.thoughtworks.xstream:xstream:jar:1.4.14:compile keep=com.thoughtworks.xstream:xstream:jar:1.4.14:compile 18:55:41,816 [DEBUG] omitForNearer:省略=commons-codec:commons-编解码器:jar:1.10:编译保留=commons-codec:commons-codec:jar:1.10:编译18:55:41,830 [DEBUG] omitForNearer:省略=com.google.guava:guava:jar:26.0-jre:编译保留=com.google.guava:guava:jar:26.0-jre:compile 18:55:41,865 [DEBUG] omitForNearer: 省略=org.apache.commons:commons-lang3:jar:3.4:compile keep=org.apache.commons :commons-lang3:jar:3.4:compile 18:55:41,877 [DEBUG] omitForNearer:省略=org.freemarker:freemarker:jar:2.3.22:compile keep=org.freemarker:freemarker:jar:2.3.22:compile 18:55:41,878 [DEBUG] omitForNearer:省略=ognl:ognl:jar:3.0.21:compile keep=ognl:ognl:jar:3.0.21:compile 18:55:41,905 [DEBUG]
omitForNearer: 省略=org.hibernate:hibernate-core:jar:3.6.0.Final:compile keep=org.hibernate:hibernate-core:jar:3.6.0.Final:compile 18:55:41,914 [DEBUG] omitForNearer:省略=org.apache.commons:commons-lang3:jar:3.4:compile 保留=org.apache.commons:commons-lang3:jar:3.4:compile 18:55:41,930 [DEBUG] omitForNearer:省略=org.apache。 commons:commons-lang3:jar:3.4:compile 保持=org.apache.commons:commons-lang3:jar:3.4:compile 18:55:41,952 [DEBUG] omitForNearer:省略=org.apache.httpcomponents:httpcore:jar: 4.4.11:编译保留=org.apache.httpcomponents:httpcore:jar:4.4.11:编译18:55:41,964 [DEBUG] omitForNearer:省略=org.apache.httpcomponents:httpcore:jar:4.4.11:编译保留=org.apache.httpcomponents:httpcore:jar:4.4.11:compile 18:55:41,974 [DEBUG] omitForNearer:省略=commons-logging:commons-logging:jar:1.2:compile 保留=commons-logging:commons-logging:jar:1.2:compile 18:55:42,028
omitForNearer: 省略=org.springframework:spring-core:jar:4.3.21.RELEASE:compile 保持=org.springframework:spring-core:jar:4.3.21.RELEASE:compile 18:55:42,063 [DEBUG] omitForNearer:省略=org.springframework:spring-beans:jar:4.3.21.RELEASE:compile 保持=org.springframework:spring-beans:jar:4.3.21.RELEASE:compile 18:55:42,066 [DEBUG] omitForNearer:省略= org.springframework:spring-core:jar:4.3.21.RELEASE:compile keep=org.springframework:spring-core:jar:4.3.21.RELEASE:compile 18:55:42,069 [DEBUG] omitForNearer:省略=org. springframework:spring-beans:jar:4.3.21.RELEASE:compile keep=org.springframework:spring-beans:jar:4.3.21.RELEASE:compile 18:55:42,075 [DEBUG] omitForNearer:省略=org.springframework: spring-aop:jar:4.3.21.RELEASE:compile 保持=org.springframework:spring-aop:jar:4.3.21.RELEASE:compile 18:55:42,077 [DEBUG] omitForNearer:省略=org.springframework:spring-beans:jar:4.3.21.RELEASE:compile keep=org.springframework:spring-beans:jar: 4.3.21.RELEASE:compile 18:55:42,079 [DEBUG] omitForNearer:省略=org.springframework:spring-core:jar:4.3.21.RELEASE:compile keep=org.springframework:spring-core:jar:4.3。 21.RELEASE:compile 18:55:42,084 [DEBUG] omitForNearer:省略=org.springframework:spring-core:jar:4.3.21.RELEASE:compile keep=org.springframework:spring-core:jar:4.3.21。发布:编译 18:55:42,087 [DEBUG] omitForNearer:省略=org.springframework:spring-core:jar:4.3.21.RELEASE:compile keep=org.springframework:spring-core:jar:4.3.21.RELEASE:编译 18:55:42,094 [DEBUG] omitForNearer: 省略=org.springframework:spring-core:jar:4.3.21.RELEASE:compile keep=org.springframework:spring-core:jar:4.3.21.RELEASE:compile 18:55:42,104 [DEBUG] omitForNearer:省略=com.fasterxml.jackson.core:jackson-注释:jar:2.10.1:编译保持=com.fasterxml.jackson.core:jackson-annotations:jar:2.10.1:编译18:55:42,109 [调试] omitForNearer:省略=com.google.guava:guava: jar:26.0-jre:compile keep=com.google.guava:guava:jar:26.0-jre:compile 18:55:42,119 [DEBUG] omitForNearer:省略=org.apache.commons:commons-lang3:jar:3.4:编译保持=org.apache.commons:commons-lang3:jar:3.4:compile 18:55:42,121 [DEBUG]jackson-annotations:jar:2.10.1:compile 18:55:42,109 [DEBUG] omitForNearer:省略=com.google.guava:guava:jar:26.0-jre:compile keep=com.google.guava:guava:jar: 26.0-jre:compile 18:55:42,119 [DEBUG] omitForNearer:省略=org.apache.commons:commons-lang3:jar:3.4:compile keep=org.apache.commons:commons-lang3:jar:3.4:compile 18 :55:42,121 [调试]jackson-annotations:jar:2.10.1:compile 18:55:42,109 [DEBUG] omitForNearer:省略=com.google.guava:guava:jar:26.0-jre:compile keep=com.google.guava:guava:jar: 26.0-jre:compile 18:55:42,119 [DEBUG] omitForNearer:省略=org.apache.commons:commons-lang3:jar:3.4:compile keep=org.apache.commons:commons-lang3:jar:3.4:compile 18 :55:42,121 [调试]
omitForNearer:省略=org.apache.httpcomponents:httpcore:jar:4.4.11:编译保留=org.apache.httpcomponents:httpcore:jar:4.4.11:编译[DEBUG]
omitForNearer:省略=org.hamcrest:hamcrest-core :jar:1.3:compile keep=org.hamcrest:hamcrest-core:jar:1.3:compile 18:55:42,138 [DEBUG]
omitForNearer:省略=org.hamcrest:hamcrest-library:jar:1.3:compile keep=org. hamcrest:hamcrest-library:jar:1.3:compile 18:55:42,139 [DEBUG] omitForNearer:省略=commons-io:commons-io:jar:2.6:compile keep=commons-io:commons-io:jar:2.6:编译 18:55:42,141 [调试]
omitForNearer:省略=commons-collections:commons-collections:jar:3.2.2:编译保留=commons-collections:commons-collections:jar:3.2.2:编译18:55:42,143 [DEBUG] omitForNearer:省略=commons- lang:commons-lang:jar:2.6:compile 保持=commons-lang:commons-lang:jar:2.6:compile 18:55:42,149 [DEBUG]
omitForNearer:省略=org.apache.httpcomponents:httpclient:jar:4.5.13:编译保留=org.apache.httpcomponents:httpclient:jar:4.5.13:编译18:55:42,162 [DEBUG] omitForNearer:省略=org。 apache.httpcomponents:httpclient:jar:4.5.13:compile 保持=org.apache.httpcomponents:httpclient:jar:4.5.13:compile 18:55:42,164 [DEBUG] omitForNearer:省略=commons-codec:commons-codec: jar:1.10:compile keep=commons-codec:commons-codec:jar:1.10:compile 18:55:42,171 [DEBUG] omitForNearer:省略=com.google.guava:guava:jar:26.0-jre:compile keep=com .google.guava:guava:jar:26.0-jre:compile 18:55:42,190 [DEBUG] omitForNearer:省略=com.fasterxml.jackson.core:jackson-databind:jar:2.10.1:compile keep=com.fasterxml .jackson.core:jackson-databind:jar:2.10.1:compile 18:55:42,200 [DEBUG] omitForNearer:省略=org.apache.commons:commons-lang3:jar:3.4:compile 保持=org.apache.commons:commons-lang3:jar:3.4:compile 18:55:42,202 [DEBUG] omitForNearer:省略=log4j:log4j:jar:1.2.14:compile 保持=log4j:log4j:jar:1.2.14:编译 18:55:42,204 [调试]
omitForNearer: 省略=com.google.guava:guava:jar:26.0-jre:compile 保持=com.google.guava:guava:jar:26.0-jre:compile 18:55:42,208 [DEBUG] omitForNearer:省略=commons- cli:commons-cli:jar:1.3.1:compile 保持=commons-cli:commons-cli:jar:1.3.1:compile 18:55:42,210 [DEBUG]
omitForNearer:省略=com.google.guava:guava: jar:26.0-jre:compile 保持=com.google.guava:guava:jar:26.0-jre:compile
maven - 仅在不包含本地解决方案的情况下,Maven 执行器依赖收敛?
我不得不禁用该dependencyConvergence
规则,因为它鼓励数以百万计的规则<excludes>
一旦存在就必须永远维护。我想要的是这条规则只强调缺乏收敛是不受控制的;当前项目没有给出明确的版本(通过<dependencies>
或<dependencyManagement>
)。
那可能吗?
#1d
可能不知道 commons-lang3 来自两个具有冲突版本的不同传递部门。执行者应该标记这一点。
#2d
已明确包含 3.1。不要标记这个。不要坚持<exclusions>
把它放在适当的位置,说明我们不想要什么,因为我们已经清楚地说明了版本想要什么。
#3 更巧妙的是,我认为c
已经解决了与其后代的任何冲突。这不应该被标记。毕竟,如果c
从那时开始运行相同的检查,那就是场景 #2。因此#2 是简单的情况#3。
更新:#2<depdendencyManagement>
仅适用于。一个重要的问题是<depdendencyManagement>
它不能传递地工作(MNG-5761),所以任何嵌套的分辨率都会丢失。
maven - 为什么即使在排除中,Maven 也不会排除测试依赖项?
我有以下...
但是当我跑步时,mvn clean package
我得到...
为什么不忽略dep?
maven - 使用 maven enforcer 插件时如何解决“依赖收敛错误”?
我只是想maven-enforcer-plugin
用一个小的 pom 来获取(在我进入我的项目 pom 之前,它有 100 多个依赖项。)
在我添加了执行器插件之后,我看到了Dependency convergence error
. pom.xml文件在下面(抱歉它不整洁)
。
如何在不禁用强制插件的情况下修复错误。
基本上我想了解如何使用规则背后的概念。dependencyConvergence
这是否意味着,我必须在此版本的pom.xml中显式声明dependencyManagement 中的每个非收敛依赖项(将依赖项添加到dependencyManagement)。
问题spring-context
仍然存在,因为我已将其添加为直接依赖项,然后在具有不同版本的依赖项管理中。
基本上 - 能够修复错误,但还不能清楚地掌握规则。
修复一个 - pom.xml - 将依赖管理中的版本更新为明确使用的版本。所以现在不需要在依赖项中明确给出版本。但这需要我能够访问父 pom 的dependencyManagment。如果我的说法是正确的,那么情况可能并非每次都如此。
修复两个pom.xml - 从 spring-security-web 中排除 spring-context 并且它有效。但是,如果要进行十几个排除,那将是一件痛苦的事情。
如果这是采用收敛规则的方法?在具有 100 多个依赖项和 100 多个传递依赖项的企业项目中,物料清单 (BOM) 将非常庞大并且需要时间来构建。嗯。(我同意,对使用的版本和使用 <xyz.version> 之类的属性会有更多的控制,升级可以轻松完成)。
如果有人能列出涉及收敛的规则,我将不胜感激。
java - Maven Enforcer 扩展
我刚刚发现了 Maven Enforcer Extension
https://maven.apache.org/enforcer/maven-enforcer-extension/usage.html
我想知道是否可以在实际项目之外配置它,例如在settings.xml
Maven 安装或命令行中。
我看到加载扩展可以通过在 Maven 安装中添加一个 JAR 来完成,但是仍然需要在某处配置规则。
用例:我们想为我们所有的项目强制执行一些规则,但不幸的是,有些项目不能使用公司父 POM。由于我们有超过 1000 个项目,如果有一些独立于项目的方式来实现这一点,那就太好了。
编辑
似乎配置文件的位置是硬编码的:
所以我可能需要派生插件,或者在 Maven 构建之前“即时”创建文件。