我想使用${variable_name}
动态添加依赖项的版本,我在另一个与pom并行的www.example.com文件中添加了该变量pom.properties。我得到“无法解决依赖关系”错误。我用的是properties-maven-plugin
我希望,如果我使用这个插件的插件会读我的变量,我已经在www.example.com中定义pom.properties,我将能够使用该变量的版本标记的依赖关系。我使用org.jacoco.jacoco-maven-plugin
来解决这个问题。
我在下面添加了我的pom.xml
。
<?xml version="1.0" encoding="UTF-8"?>
<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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.7.9</version>
<relativePath /> <!-- lookup parent from repository -->
</parent>
<groupId>com.example</groupId>
<artifactId>project</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>project</name>
<description>Spring Boot</description>
<properties>
<java.version>11</java.version>
</properties>
<build>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>properties-maven-plugin</artifactId>
<version>1.0.0</version>
<executions>
<execution>
<goals>
<goal>set-property</goal>
</goals>
<configuration>
<files>
<file>C:\Users\praduman.yadav\eclipse\learning-workspace\springboot project\project\example-library.properties</file>
</files>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<version>${example-library.version}</version>
</dependency>
</dependencies>
</project>
我在下面的www.example.com中添加了下面的版本变量pom.properties
version=0.8.8
1条答案
按热度按时间ig9co6j11#
有几件事要指出
1.如果你打算使用maven属性插件(无论是新的还是旧的,见下文),这对你没有帮助。因为当maven解析POM时,它需要知道版本,它发生在任何构建之前。所以在构建的时候,你应该已经知道依赖的版本,而不是在某个构建阶段。因此,您尝试使用的插件不会解决此问题。
1.为了解决这个问题,你可以尝试将属性传递到maven表单命令行,比如
-Dsome.version=1.6.3
。这样,您将在解析时提供属性值,以便maven能够识别并替换变量。作为一个侧记,谈到
properties-maven-plugin
,有2个选项,据我所知...我只能告诉后来,因为我自己是该项目的贡献者之一-有一个
README.md
文件,显示了如何使用插件的多个示例。这里也有一个例子专门针对你的情况。看看这个