【问题标题】:Selecting class by Maven build profile通过 Maven 构建配置文件选择类
【发布时间】:2012-10-24 10:12:06
【问题描述】:

我对 Maven 和 Java EE 编程完全陌生。

我想创建一个用于身份验证测试的存根类,它应该在默认的 Maven 构建配置文件中激活。

目前我有两个同名但在不同包中的类。是否可以通过设置 Maven 构建配置文件参数以某种方式选择要在构建阶段使用的正确类?我还在我的项目中使用 EJB 和 JSF2.0,并且身份验证对象是在其中一个 bean 中创建的:

AuthUtil util = new AuthUtil();

【问题讨论】:

    标签: java maven ejb


    【解决方案1】:

    这是可能的,需要一些步法。您必须将您的类置于依赖项中并以这种方式使用配置文件:

    <profiles>
        <profile>
            <id>default</id>
            <dependencies>
                 <dependency>...</dependency>
           </dependencies>
        </profile>
        <profile>
            <id>someotherprofile</id>
            <dependencies>
                 <dependency>...</dependency>
           </dependencies>
        </profile>
     </profiles>
    

    此外,这些类必须在同一个包中才能正常工作。

    干杯,

    【讨论】:

    • 请注意,这样做你将无法告诉运行时它是哪个构建......除非你提供一个单独的机制来告诉它。这就是为什么我只指定要在属性文件中使用的实现。
    • AuthUtil 上提供一个方法来询问“它”是什么是微不足道的。或者配置文件-&lt;property&gt; 被过滤到构建中。
    【解决方案2】:

    您可以在属性文件中指定具体类,并通过 maven 构建配置文件过滤属性文件,因此它们将获得不同的值。然后属性文件将被 java 代码读取并相应地使用。

    这样做有什么理由吗?这感觉不像是正确的做事方式......

    【讨论】:

      猜你喜欢
      • 2019-02-06
      • 2019-08-24
      • 1970-01-01
      • 2020-09-04
      • 2016-10-13
      • 1970-01-01
      • 1970-01-01
      • 2017-04-13
      • 1970-01-01
      相关资源
      最近更新 更多