在maven中读取属性文件

在maven中读取属性文件,maven,plugins,pom.xml,Maven,Plugins,Pom.xml,我将以下代码添加到我的pom.xml中,以使用以下配置从外部属性文件读取属性: org.codehaus.mojo 属性maven插件 1.0-α-2 初始化 读取项目属性 ..\maven.properties 在我的maven.properties文件中,我有以下内容: aspectj maven插件。版本=1.4 版本maven插件。版本=2.0 我正在pom.xml中使用${versions maven plugin.version} org.codehaus.mojo 版本mav

我将以下代码添加到我的pom.xml中,以使用以下配置从外部属性文件读取属性:


org.codehaus.mojo
属性maven插件
1.0-α-2
初始化
读取项目属性
..\maven.properties
在我的maven.properties文件中,我有以下内容:

aspectj maven插件。版本=1.4

版本maven插件。版本=2.0

我正在pom.xml中使用
${versions maven plugin.version}


org.codehaus.mojo
版本maven插件
${versions maven plugin.version}
网址
com.package:*
但是当我在包上运行
mvn clean install
时抛出一个异常,说插件版本无效。发生这种情况的原因是什么


注意:pom.xml和mave.properties都在同一个文件夹中

原因很简单:为了能够读取
properties maven插件的配置
,maven还必须解析所有其他插件-它在实际启动插件之前不知道插件做了什么

当它这样做时,它注意到它没有所有必要的版本。这个验证步骤发生在第一个插件实例化之前很久


结论:你的方法行不通。您可以做的是将属性放入POM中,然后将它们从POM中提取到属性文件中(例如使用)。

原因很简单:为了能够读取
属性maven插件的配置,Maven还必须解析所有其他插件——在实际启动插件之前,它不知道插件做了什么

当它这样做时,它注意到它没有所有必要的版本。这个验证步骤发生在第一个插件实例化之前很久


结论:你的方法行不通。您可以做的是将属性放入POM中,然后将它们从POM中提取到属性文件中(例如使用)。

可能是一个典型的“\`windows路径分隔符问题?确实要这样做吗?到某人的桌面文件夹的绝对路径并不是真正的Maven方式…我正在测试这种方式。我将属性文件拖放到父项目中,但它仍然无法拾取。您是否介意更改“\` for`/`”,至少要确保问题不是由此产生的。我已尝试使用这两种组合仍然存在相同的问题可能是典型的“\` windows路径分隔符问题?是否确实要执行此操作?到某人的桌面文件夹的绝对路径并不是真正的Maven方式…我正在测试这种方式。我将属性文件放在父项目中,但它仍然无法拾取。您是否介意更改“\`for`/`”,至少要确保问题不是由此产生的。我尝试过这两种组合,但问题仍然相同。请您再详细说明一下?我不知道您不知道/需要知道什么。请阅读参考资料插件()的文档或提出一个具体问题。似乎不可能使用mvn3将
properties
文件中的值输入到插件配置中,因为在配置所有插件之前根本无法“交付”它读取的内容。没有逃脱的机会——恶性循环但是,将值输入到maven处理的资源中是可能的:这需要有资源(=文本文件)进行复制,作为maven应该为您做的工作的一部分。您能再详细说明一下吗?我不知道您不知道/需要知道什么。请阅读参考资料插件()的文档或提出一个具体问题。似乎不可能使用mvn3将
properties
文件中的值输入到插件配置中,因为在配置所有插件之前根本无法“交付”它读取的内容。没有逃脱的机会——恶性循环然而,将值输入到maven处理的资源中是可能的,使用:它需要有资源(=文本文件)作为maven应该为您做的工作的一部分进行复制。