我们使用maven(版本3.3.9)并定义我们在属性secion中使用的库的版本。为此,我们使用属性和依赖性定义,如下所示:
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<version.foobar.webjar>1.6.0</version.foobar.webjar>
</properties>
<dependencies>
<dependency>
<groupId>de.foobar</groupId>
<artifactId>webjar</artifactId>
<version>${version.foobar.webjar}</version>
</dependency>
</dependencies>
这很好用,依赖项在配置的1.6.0版本中加载。
但是,如果我现在添加包含完全不同属性的配置文件,例如:
<profile>
<id>testing</id>
<properties>
<test213>blabla</test213>
</properties>
</profile>
并激活该配置文件,不再设置“version.foobar.webjar”并且编译失败。
另外,当我将“version.foobar.webjar”定义放在这样的配置文件中时:
<profile>
<id>testing</id>
<properties>
<version.foobar.webjar>1.6.0</version.foobar.webjar>
</properties>
</profile>
并激活配置文件,它也不起作用。我最好的猜测是,pom文件中使用的属性必须位于其自己的属性部分中,并且不能位于以下级别(如在配置文件中)。
但是,如果我在配置文件中定义完全不同的属性,那么仍然没有向我解释为什么pom中的属性不再起作用。
我想,我误解了http://maven.apache.org/guides/introduction/introduction-to-profiles.html 这些属性通过不同的级别加起来,但是我没有看到如何定义属性并在一个pom文件中包含具有属性的配置文件。
我希望,有人可以帮助我,因为我迷路了。