【问题标题】:Import system properties to maven plugin's Spring context将系统属性导入 Maven 插件的 Spring 上下文
【发布时间】:2011-03-01 06:35:33
【问题描述】:

我有一个内部开发的使用 spring IOC 容器的 maven 插件(我们称之为 A)和一个使用这个插件的 maven 项目(称之为 B)。

我想在 B 的 pom.xml 中指定特定的插件配置,所以这个属性将在插件的 spring 上下文中被访问

我期待这样的事情, pom.xml(项目B

<plugin>
...
 <configuration>
    <dummyproperty>dummy_value</dummyproperty>
 </configuration>
...
</plugin>

Spring_context.xml(项目A - 插件)

<bean class="com.blabla.SomeClass">
 <property name="someBeanProperty" value="${dummyproperty}" />
</bean>
<bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> 

我已经尝试了各种使用插件配置、附加属性文件的方法,但是在 spring 上下文中的占位符没有填充真实值。 寻求您的帮助

提前致谢

【问题讨论】:

  • 你不应该使用Maven内置的IOC容器Plexus来代替Spring吗? Plexus 与 Maven 紧密集成。您只需将@parameter expression="${dummyproperty}" 放入属性设置器的javadoc 即可访问系统属性。
  • @abhin4v:同意。甚至还有一个 plexus-spring“桥”允许在 Plexus 中重用 spring bean。

标签: java spring maven-2 maven-plugin


【解决方案1】:

我已经实现了完全相同的插件。解决方案是在插件 mojo 中有一个 Properties 成员,然后使用通常的 &lt;cofiguration&gt; 部分进行配置。

插件 mojo 负责加载 spring XML 并创建应用程序上下文。在使用应用上下文之前,mojo 实例化了一个 PropertiesPlaceHolderConfigurer,将属性设置为 mojo 中配置的 Properties 实例。

为方便起见,我还有一个属性实例,其中的值被忽略,而是从项目中获取。这允许在 spring 配置中使用与 maven 项目中相同的值方便地设置属性。

【讨论】:

    猜你喜欢
    • 2015-03-18
    • 1970-01-01
    • 2011-08-07
    • 1970-01-01
    • 1970-01-01
    • 2014-12-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多