在我的项目中,我有 maven 依赖项。
顺便说一下:
<dependency>
<groupId>org.mule.modules</groupId>
<artifactId>mule-module-activiti</artifactId>
<version>3.2.0</version>
</dependency>
在这个依赖 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>
并提供所需的存储库: <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>
编辑 2:这是一个 POM为 org.mule.modules:mule-module-activiti:3.2.0 ,我的项目依赖的库。在这个 pom 中,他们使用表达式
${activiti.version}
.但他们不要设置此表达式的值。 (没有什么像 <properties><activiti.version>5.10</activiti.version></properties>
)问题是如何从 为这个表达式设置一个值我的 庞?
最佳答案
好的,最后,经过几天的搜索和试验,我找到了解决问题的方法。
如果需要在命令行中为 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>
我希望它会对某人有所帮助。也很抱歉我的笨拙问题显然难以理解。
关于maven - 如何设置从 Maven 中的依赖项引用的属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12175223/