- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我注意到 Maven 输出报告的插件版本号与我在 pom 文件中指定的版本号不同。
例如,在我的pom中我指定编译器插件版本为3.1
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
</plugin>
但是当 Maven 运行(打包、安装...无论什么)时,它会输出它使用版本 2.3.2 作为编译器插件
[INFO] --- maven-compiler-plugin:2.3.2:compile (default-compile)
是否有一些全局 Maven 设置文件胜过本地 pom 文件配置?
最佳答案
Plugin management是一种共享插件默认配置(来自父项目或同一项目)的机制,它会被 effective pom 中的值覆盖。 build plugins
部分,所以这不是解决方案。
您的 pom 中可能有一个被激活的配置文件,它会覆盖插件版本值(请参阅下面的调试部分,阅读您的有效 pom)。注释掉( <!--
、 -->
)pom 中的配置文件节点,并重新运行构建(如果有)。
如果这是原因,您可以 deactivate the profile in your pom或者从命令行运行时只需附加 -P !<PROFILE_NAME>
或-P \!<PROFILE_NAME>
对于Linux。
更具体地说,如果你的 pom 看起来像这样:
<project>
<build>
<pluginManagement>
<plugins>
<plugin>
<groupId>someGroupId</groupId>
<artifactId>someArtifactId</artifactId>
<version>versionFromPluginManagement</version>
...
</pluginManagement>
<plugins>
<plugin>
<groupId>someGroupId</groupId>
<artifactId>someArtifactId</artifactId>
<version>versionFromPlugins</version>
...
</build>
<profiles>
<profile>
<activation>
<activeByDefault>BOOLEAN_STRING</activeByDefault>
</activation>
<build>
<plugins>
<plugin>
<groupId>someGroupId</groupId>
<artifactId>someArtifactId</artifactId>
<version>versionFromProfile</version>
...
</project>
神器someGroupId:someArtifactId
定义于 pluginManagement
, plugins
,和profiles
部分。版本解析如下:
versionFromPlugins
未定义且 BOOLEAN_STRING 为 false
那么结果版本是 versionFromPluginManagement
versionFromPlugins
已定义,且 BOOLEAN_STRING 为 false
那么结果版本是 versionFromPlugins
true
那么结果版本是 versionFromProfile
如果不是这样,请运行:
mvn help:effective-pom > pom.log
mvn help:effective-settings > settings.log
mvn -version > environment.log
并在此处发布内容。
Is there some global maven settings file that trumps local pom file configuration?
Yes, there is 。实际上至少有两个:maven 安装文件夹中的全局一个,以及本地存储库文件夹旁边的每用户一个。
当您针对项目运行 Maven 时,它会使用您的 pom 文件插入这两个文件,并计算生成的结果,该结果将在构建项目时应用。
mvn -X clean compile > build.log
- 使用 -X
运行带有详细输出的 Maven (调试)命令行标志。由于有大量输出,建议将其( >
)通过管道传输到文件。当使用带有错误文档的插件时,这特别有用,因为您可以在执行之前查看所有插件属性及其实际值。mvn <a href="http://maven.apache.org/plugins/maven-help-plugin/effective-pom-mojo.html" rel="noreferrer noopener nofollow">help:effective-pom</a> > pom.log
计算构建项目时将应用的 pom。它还显示事件的配置文件。mvn <a href="http://maven.apache.org/plugins/maven-help-plugin/effective-settings-mojo.html" rel="noreferrer noopener nofollow">help:effective-settings</a> > settings.log
计算构建项目时将应用的设置首先检查您的有效 pom,然后调试输出,最后检查有效设置。
极少数情况下,问题可能出在环境中。您必须知道maven使用java,因此您需要这些来了解您的实际环境:
java -version
mvn -version
Maven 通过以下环境变量( see its install instructions )了解其环境:
M2_HOME
- maven安装文件夹根目录的绝对路径M2
- bin
上面的文件夹,这就是 maven 可执行文件所在的位置JAVA_HOME
-JDK 安装文件夹根目录的绝对路径 - 通过更改此值,您可以更改 Maven 使用的 Java当然,所有三个变量都必须在 PATH environment variable 中.
关于maven-3 - pom 中的 Maven 插件版本(貌似)被忽略,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18340970/
我正在尝试设置我的 git 配置,以便我可以使用工作环境和个人环境。 这是我的 ~.gitconfig 文件的内容(碰巧 work 和 private 在 github 上): [url "git@
我有以下情况。我在 Sheet1 上有一个项目列表,我想将项目复制到 Sheet2 并排除特定项目。 假设我在 Sheet1 上有以下项目列表: 我想将“梨”单元格留在 Sheet2 上。 它应该完全
我试图让 gcc 以不同的语言提供错误消息。但它仍然给我英文的错误信息。 我的语言环境输出 varun@varun-desktop:$ 语言环境 LANG=en_IN LC_CTYPE="es_EC.
我在 Linux x86 上使用 gcc。 我的程序将指向 C 函数的指针导出到 LLVM JIT 函数。调用约定是 cdecl。它在 Windows 上的 MingW 上运行良好。但是奇怪的事情发生
windows 上 php 的奇怪问题...我的应用程序加载了一个“核心”文件,该文件加载了一个设置文件、注册自动加载、进行初始化等。在核心文件的顶部我有 include_once("config.p
在工具|选项|调试器选项 |语言异常可以忽略特定的异常类型。是否可以为每个项目定义这个?例如在调试构建配置中(Delphi 2009 和/或 2010)? /编辑:Reported in QC 最佳答
我在一个文本框旁边有 2 个按钮,在这 2 个按钮后面还有另一个文本框。第一个文本框的 tabindex 为 1000,第一个按钮为 1001,第二个按钮为 1002。第二个文本框的 tabindex
我是 python 新手,正在尝试类型提示,但它们似乎只在某些情况下起作用。它们似乎在属性返回类型上按预期工作,但是当我尝试将整数分配给字符串值(即 self._my_string = 4)时,我没有
问题陈述 我有一些国家和这些国家的州的依赖组合框。我使用 VBA 在第一个组合框中填充唯一值,然后在第二个组合框中动态填充唯一值。该代码似乎忽略了初始传递中的条件。 例如,该代码适用于第一个国家/地区
我对 Javascript 有点陌生。我试图做到这一点,以便单击一个页面上的图像会将您带到一个新页面,并在该新页面上显示特定的 div,因此我使用 sessionStorage 来记住并使用 bool
我不确定我是否正确地处理了这个问题。 我有一个 ASP.NET MVC Web 应用程序。有 4 个主要“页面”通过单击菜单选项,可以选择一个页面,并将该页面选项存储在本地存储中。 现在,如果我刷新页
我的页面工作正常,并按预期显示日期和时间,直到我不得不添加 new Date() 以避免 momentjs deprecation warning 。现在我的约会比应有的时间晚了 5 个小时。 我该如
我需要合并一个 fork 项目。不幸的是,CVS $Id 行不同,因此我尝试的合并工具报告所有文件都不同(其中 95% 只有这一行不同) 是否有一个合并工具可以配置为忽略基于模式的行比较结果? [编辑
我是 python 新手,正在尝试类型提示,但它们似乎只在某些情况下起作用。它们似乎在属性返回类型上按预期工作,但是当我尝试将整数分配给字符串值(即 self._my_string = 4)时,我没有
我正在尝试根据 How do a send an HTTPS request through a proxy in Java? 使用代理访问 https 网页 但是我遇到了一个奇怪的问题:HttpsU
我有一个简单的 CMakeLists.txt 文件: cmake_minimum_required(VERSION 2.8.9) project (sample) add_library(Shared
这个问题在这里已经有了答案: typedef pointer const weirdness (6 个答案) 关闭 8 年前。 我有一个结构体 type_s。然后我将指向 struct type_s
我正在尝试制作一个使用 AES 256 加密的应用程序。不幸的是我无法让它工作。也许我没有完全理解密码逻辑。 所以它正在工作,但据我了解,哈希包含密码。但如果我更改密码,输出是相同的。因此,Crypt
我的文件包含一些行,例如 "This is a string." = "This is a string's content." " Another \" example \"" = " New ex
我尝试使用此查询来获取所选健身房的所有用户。 我的问题是查询忽略了这部分:ual.user_id = weekUsers.user_id 查询似乎获取了与我选择的日期匹配的所有用户 ID,而不检查该用
我是一名优秀的程序员,十分优秀!