在我的项目中,我有了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:
以下是 org.mule.modules的POM:mule-module-activiti:3.2.0 ,我的项目所依赖的库。在这个pom里面,他们使用表达式${activiti.version}
。但是他们不为此表达式设置值。 (没有类似<properties><activiti.version>5.10</activiti.version></properties>
)
问题是如何从我的 pom?
为此表达式设置值答案 0 :(得分:4)
您可以使用属性来定义版本:
<properties>
<module-version>3.2.0</module-version>
</properties>
..
<dependency>
<groupId>org.mule.modules</groupId>
<artifactId>mule-module-activiti</artifactId>
<version>${module-version}</version>
</dependency>
为什么不应该that work?
您永远不应该通过命令行上的属性定义工件的版本,因为您将来无法重现这些工件,我怀疑这是否有效。
答案 1 :(得分:4)
好的,最后,经过几天的搜索和实验,我找到了解决问题的方法。
如果您需要在命令行上提供maven属性(谈论系统属性,这与 maven属性略有不同),您还可以使用插件来提供您的pom或单独的属性文件中的这些属性。
注意:强> 系统属性可用于覆盖您的dependecies中的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>
我希望这对某人有所帮助。
也很抱歉我的笨拙问题显然很难理解。
答案 2 :(得分:0)
确保您没有与外界交谈的代理设置。我只是尝试了你的配置,它的工作原理。我正在使用最新的Maven 3版本。