本文介绍了有没有办法追踪Maven Pom中某个属性的起源?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个复杂的Maven项目,其中包含许多托管依赖项,并且在跟踪这些依赖项的版本时遇到了一些问题.例如,spring库的版本由属性值{spring.version}引导-但我不知道此属性来自哪个项目.

I have a complex maven project with a lot of managed dependencies, and have a little problem tracing versions of these dependencies. For example, spring libraries' version is guided by a property value {spring.version} - but I have no idea which project this property is coming from.

使用mvn依赖项:树,我可以看到所有版本都得到解决的最终结果,但是并没有详细说明获胜的依赖项版本来自何处,以及为什么该版本是获胜者.

Using mvn dependency:tree I can see the final result where all versions are resolved, but it does not go deep into detail to tell me where the winning dependency version is coming from, and why that version is a winner.

P.S.版本号不是来自我的父pom.

P.S. Version number is not coming from my parent pom.

推荐答案

您可以尝试 help:effective-pom .只需确保将 3.2.0 版本(或更高版本)与 -Dverbose = true 标志集一起使用即可.这将打印出POM值的来源.

You could give help:effective-pom a go. Just make sure that you use the 3.2.0 version (or later) together with the -Dverbose=true flag set. This will print out the source of the POM value.

要强制使用正确版本的插件:

To force the right version of the plugin:

<build>
    <pluginManagement>
      <plugins>
        <plugin>
          <artifactId>maven-help-plugin</artifactId>
          <version>3.2.0</version>
        </plugin>
      </plugins>
    </pluginManagement>
</build>

要使用它:

%> mvn help:effective-pom -Dverbose=true

这将打印出以下内容:

<?xml version="1.0" encoding="UTF-8"?>
<!-- ====================================================================== -->
<!--                                                                        -->
<!-- Generated by Maven Help Plugin on 2019-07-24T15:28:33+02:00            -->
<!-- See: http://maven.apache.org/plugins/maven-help-plugin/                -->
<!--                                                                        -->
<!-- ====================================================================== -->
<!-- ====================================================================== -->
<!--                                                                        -->
<!-- Effective POM for project                                              -->
<!-- 'org.example:test-project:jar:0.0.1-SNAPSHOT'                          -->
<!--                                                                        -->
<!-- ====================================================================== -->
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>  <!-- org.example:test-project:0.0.1-SNAPSHOT, line 5 -->
  <parent>
    <groupId>org.springframework.boot</groupId>  <!-- org.example:test-project:0.0.1-SNAPSHOT, line 16 -->
    <artifactId>spring-boot-starter-parent</artifactId>  <!-- org.example:test-project:0.0.1-SNAPSHOT, line 17 -->
    <version>2.0.5.RELEASE</version>  <!-- org.example:test-project:0.0.1-SNAPSHOT, line 18 -->
    <relativePath />  <!-- org.example:test-project:0.0.1-SNAPSHOT, line 19 -->
  </parent>
  <groupId>org.example</groupId>  <!-- org.example:test-project:0.0.1-SNAPSHOT, line 7 -->
  <artifactId>test-project</artifactId>  <!-- org.example:test-project:0.0.1-SNAPSHOT, line 8 -->
  <version>0.0.1-SNAPSHOT</version>  <!-- org.example:test-project:0.0.1-SNAPSHOT, line 9 -->
  <name>Test Project</name>  <!-- org.example:test-project:0.0.1-SNAPSHOT, line 12 -->
  <description>Blabla.</description>  <!-- org.example:test-project:0.0.1-SNAPSHOT, line 13 -->
  <url>https://projects.spring.io/spring-boot/#/spring-boot-starter-parent/test-project</url>  <!-- org.springframework.boot:spring-boot-starter-parent:2.0.5.RELEASE, line 14 -->
  <licenses>
    <license>
      <name>Apache License, Version 2.0</name>  <!-- org.springframework.boot:spring-boot-dependencies:2.0.5.RELEASE, line 12 -->
      <url>http://www.apache.org/licenses/LICENSE-2.0</url>  <!-- org.springframework.boot:spring-boot-dependencies:2.0.5.RELEASE, line 13 -->
    </license>
  </licenses>
  <developers>
    <developer>
      <name>Pivotal</name>  <!-- org.springframework.boot:spring-boot-dependencies:2.0.5.RELEASE, line 18 -->
      <email>[email protected]</email>  <!-- org.springframework.boot:spring-boot-dependencies:2.0.5.RELEASE, line 19 -->
      <organization>Pivotal Software, Inc.</organization>  <!-- org.springframework.boot:spring-boot-dependencies:2.0.5.RELEASE, line 20 -->
      <organizationUrl>http://www.spring.io</organizationUrl>  <!-- org.springframework.boot:spring-boot-dependencies:2.0.5.RELEASE, line 21 -->
    </developer>
  </developers>
  <properties>
    <activemq.version>5.15.6</activemq.version>  <!-- org.springframework.boot:spring-boot-dependencies:2.0.5.RELEASE, line 28 -->
    <antlr2.version>2.7.7</antlr2.version>  <!-- org.springframework.boot:spring-boot-dependencies:2.0.5.RELEASE, line 29 -->
    <appengine-sdk.version>1.9.64</appengine-sdk.version>  <!-- org.springframework.boot:spring-boot-dependencies:2.0.5.RELEASE, line 30 -->
    <artemis.version>2.4.0</artemis.version>  <!-- org.springframework.boot:spring-boot-dependencies:2.0.5.RELEASE, line 31 -->
    <aspectj.version>1.8.13</aspectj.version>  <!-- org.springframework.boot:spring-boot-dependencies:2.0.5.RELEASE, line 32 -->
    ...
  </properties>
  <dependencyManagement>
    <dependencies>
      <dependency>
        <groupId>org.springframework.boot</groupId>  <!-- org.springframework.boot:spring-boot-dependencies:2.0.5.RELEASE, line 208 -->
        <artifactId>spring-boot</artifactId>  <!-- org.springframework.boot:spring-boot-dependencies:2.0.5.RELEASE, line 209 -->
        <version>2.0.5.RELEASE</version>  <!-- org.springframework.boot:spring-boot-dependencies:2.0.5.RELEASE, line 210 -->
      </dependency>
      ...
    </dependencies>
  </dependencyManagement>
</project>

这篇关于有没有办法追踪Maven Pom中某个属性的起源?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

08-06 05:25