我有一个maven项目。在pom.xml
中,我将环境变量称为${env.MyProjectVersion}
。在构建项目之前,我从命令提示符设置变量的值(export MyProjectVersion=1.0.0
)。构建成功,我将maven项目导入 eclipse 和 m2eclipse 尝试构建失败:
无法下载xyz - {$ env.MyProjectVersion}依赖
Eclipse 无法解析环境变量的值。有没有办法用eclipse指定环境变量值,以便eclipse中的maven插件可以选择它。
答案 0 :(得分:2)
显然,Eclipse Maven插件在maven构建期间忽略了环境变量。根据您的具体情况,可能的解决方法是使用settings.xml中的属性。唯一的缺点是你必须将这些变量定义为环境变量,并在settings.xml中第二次定义
在我的回答中,我描述了以下场景。 使用标准maven插件功能在eclipse中构建人工制品,并通过maven命令行另外构建相同的工件。 此外,在命令行构建期间,我直接引用存储库文件夹 mvn -Dmaven.repo.local = / PATH_TO_M2_FOLDER / repository / -f parent.pom install
设置如下: 您必须在pom.xml中添加属性以充当环境变量的代理。 在命令行方案中,将直接填充这些属性。 在Eclipse场景中,属性必须由用户settings.xml通过定义配置文件来填充。
假设你有一个属性环境变量$ FOO。
在maven settings.xml中使用配置文件并定义fooProperty。
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0
http://maven.apache.org/xsd/settings-1.0.0.xsd">
<profiles>
<profile>
<id>default</id>
<properties>
<fooProperty>bar</fooProperty >
</properties>
</profile>
</profiles>
...
<activeProfiles>
<activeProfile>default</activeProfile>
</activeProfiles>
</settings>
然后您只需将Eclipse maven插件指向您的用户设置即可。 要使CLI工作,您必须在pom.xml中第二次定义fooProperty: $ {} env.foo
显然,eclipse maven插件优先于settings.xml中的属性,而不是pom.xml中的属性。不幸的是,我还没有找到一种通过环境变量在settings.xml中定义属性的方法。
在pom.xml中使用变量时,只使用proxy属性,如下所示: ...... $ {fooProperty} ...
我正在使用 * Eclipse Mars:发布(4.5.0) * Embedded Maven:3.3.3 / 1.6.0.20150526-2031 * OSX El Capitan:10.11.4(15E65)
答案 1 :(得分:1)
转到“运行配置”,“转到环境”选项卡,添加变量,其值比变量值将被解析