如何设置从Maven中的依赖项引用的属性

Ond*_*zek 4 properties dependency-management maven

在我的项目中,我有maven依赖性。
顺便说一下:

<dependency>
   <groupId>org.mule.modules</groupId>
   <artifactId>mule-module-activiti</artifactId>
   <version>3.2.0</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)

在此依赖项POM中,有一个已使用但未定义的属性- ${activiti.version}

我发现如何设置此属性的唯一方法是在命令行上指定它,例如 mvn -Dactiviti.version=5.10

有什么方法可以在我的项目POM中指定此属性吗?
<properties><activiti.version>5.10</activiti.version></properties>不起作用。

我希望我已经把问题弄清楚了。
感谢帮助。

编辑:

如果您创建具有依赖关系的新Maven项目,则可以重现我尝试解决的情况:

<dependency>
   <groupId>org.mule.modules</groupId>
   <artifactId>mule-module-activiti</artifactId>
   <version>3.2.0</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)

并提供所需的存储库:

  <repositories>
        <repository>
            <id>muleforge-repo</id>
            <name>MuleForge Repository</name>
            <url>http://repository.muleforge.org/release</url>
            <layout>default</layout>
        </repository>

        <repository>
            <id>codehaus-repo</id>
            <name>Codehaus Repository</name>
            <url>http://dist.codehaus.org/mule/dependencies/maven2</url>
            <layout>default</layout>
        </repository>
        <repository>
            <id>activiti</id>
            <name>Activiti</name>
            <url>https://maven.alfresco.com/nexus/content/groups/public/</url>
        </repository>
    </repositories>
Run Code Online (Sandbox Code Playgroud)

编辑2:

这里是一个POMorg.mule.modules:骡子模块的Activiti:3.2.0,图书馆我的项目依赖。在这个pom内部,他们使用expression ${activiti.version}。但是他们没有为这个表达式设置值。(没有类似的东西<properties><activiti.version>5.10</activiti.version></properties>

问题是我怎么可以从这个表达式设定值 POM?

Ond*_*zek 5

好,最后,经过几天的搜索和实验,我找到了解决问题的方法。

如果需要在命令行上为maven提供属性(谈论系统属性,与maven属性略有不同),还可以使用插件在pom或单独的属性文件中提供这些属性。

注意: 系统属性可用于覆盖依赖关系中的Maven属性。

像这样:

<plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>properties-maven-plugin</artifactId>
    <version>1.0-alpha-2</version>
    <executions>
        <execution>
            <goals>
                <goal>set-system-properties</goal>
            </goals>
            <configuration>
                <properties>
                    <property>
                        <name>activiti.version</name>
                        <value>5.10</value>
                    </property>
                </properties>
            </configuration>
        </execution>
    </executions>
</plugin>
Run Code Online (Sandbox Code Playgroud)

我希望这会对某人有所帮助。

对于我这个笨拙的问题也很抱歉,这个问题显然很难理解。