如何用maven属性替换Java注释值?

时间:2017-10-19 09:51:44

标签: java maven

我在一个类上有一个注释@SecurityDomain("cjm")。根据我部署应用程序的环境,我需要配置不同的安全域。所以我的想法是使用过滤:@SecurityDomain("${project.name}")

然而,使用我在SO上找到的例子,没有任何作用。我根本无法替换属性

看起来很奇怪我没有找到一个很好的解决方案。可能我用错误的术语搜索。或许,奇怪的是,它(仍然)是不可能的。

maven模板插件是不够的,它不包含过滤器,所以我有许多重复的类编译错误。

该项目是一个Java EE项目,使用keycloak saml安全适配器在Red Hat EAP 7上运行。 @SecurityDomain必须将安全上下文从Web上下文传播到ejb上下文。使用@RolesAllowed时这是必要的。我向keycloak团队记录了一个增强请求,以自动传播安全上下文,就像在默认情况下一样。

1 个答案:

答案 0 :(得分:-1)

您可以在任何Maven构建阶段中设置环境变量,具体取决于您的配置文件。然后使用System.environment()在运行时阶段使用它们。

就现代Docker容器的交付方式而言,它应该是一种更好的方式