我正在开发一个插件,用于在maven的预集成阶段部署我的应用程序。现在,当应用程序启动并创建所有bean时,然后在setter方法中传递一个env变量,其值被提取。
public void setEnvName(final String passwordEnvName) {
super.setPassword(System.getenv(passwordEnvName));
}
用法
<bean id="environmentVariablesConfiguration" class="org.jasypt.encryption.pbe.config.EnvironmentStringPBEConfig">
<property name="algorithm" value="PBEWithMD5AndDES" />
<property name="passwordEnvName" value="PRIVATE_KEY" />
</bean>
现在我无法在unix框中设置此变量。我尝试了以下
<plugin>
<artifactId>maven-antrun-plugin</artifactId>
<executions>
<execution>
<phase>generate-sources</phase>
<configuration>
<tasks>
<exec executable="env">
<env key="PRIVATE_KEY" value="PASSWORD_KEY"/>
</exec>
</tasks>
</configuration>
<goals>
<goal>run</goal>
</goals>
</execution>
</executions>
</plugin>
但它始终为null。有什么方法可以实现这个目标吗?
答案 0 :(得分:0)
Maven仅在构建时执行,而不是在运行时执行。 因此,即使您在构建时设置了env变量,在运行时它也将为空,如果: