当前位置: 首页 > 面试题库 >

有没有一种方法可以在编译期间在Java类中使用maven属性

席俊驰
2023-03-14
问题内容

我只想在编译时在Java类中使用maven占位符,以减少重复。

像这样:

pom.xml

<properties>
  <some.version>1.0</some.version>
</properties>

SomeVersion.java

package some.company;

public class SomeVersion {

    public static String getVersion() {
        return "${some.version}"
    }

}

问题答案:

只需在src / main / resources中创建具有以下内容的文件app.properties

application.version=${project.version}

然后像这样启用Maven过滤

<build>
    <resources>
        <resource>
            <directory>src/main/resources</directory>
            <filtering>true</filtering>
        </resource>
    </resources>

就是这样-在应用程序代码中只需读取属性文件

ClassPathResource resource = new ClassPathResource( "app.properties" );
p = new Properties();
InputStream inputStream = null;
try {
    inputStream = resource.getInputStream();
    p.load( inputStream );
} catch ( IOException e ) {
    LOGGER.error( e.getMessage(), e );
} finally {
    Closeables.closeQuietly( inputStream );
}

并提供这样的方法

public static String projectVersion() {
    return p.getProperty( "application.version" );
}


 类似资料:
  • 问题内容: 嗨,我想使用WMI类来查找应用程序和产品信息。但是问题是我想使用Java或任何脚本语言(如python,javascript或perl)。我听说过JWMI,这可能是一个选择。有人可以帮我吗??? 问题答案: JavaScript和Java不是一回事。 JavaScript Windows脚本宿主(WSH)下提供了JavaScript。有了它,访问WMI相当容易: jWMI(Java)

  • 我们可以使用这些jvm标志来确定编译阈值,但是有没有一种方法可以在运行时以编程方式确定它?

  • 有人知道怎么做吗?谢谢你的预付款!

  • 问题内容: 我有Visio2007,我真的很喜欢。但是,它似乎没有Java的UML模型/数据类型。我可以为Java下载一些模板吗?还是我应该完全忘记Visio并获得一个Elipse插件? 谢谢! 问题答案: 后者是更好的选择,恕我直言。此外,我认为UML模型不应该特定于Java。我不知道周围是否有特定于Java的UML。 我在网上搜索时发现了这个。UML模型:MS Visio 2007。

  • 问题内容: 假设我有以下代码: 这段代码的问题在于,协程内部的循环永远不会完成第一次迭代,而大小会不断增加。 为什么会这样发生,我该怎么解决? 我无法摆脱单独的线程,因为在我的真实代码中,我使用了单独的线程与串行设备进行通信,而且我还没有找到使用的方法。 问题答案: 不是线程安全的,因此您不能直接在多个线程中直接使用它。相反,您可以使用,它是提供线程感知队列的第三方库: 还有(全披露:我写了它),

  • 问题内容: 我们正在使用 PropertyPlaceholderConfigurer 在我们的Spring配置中使用java属性(此处有详细信息) 例如: 我们想添加一个附加属性,但是要有一个分布式系统,现有实例都可以使用默认值。通过在Spring config中为未定义覆盖属性值的默认值指示默认值,是否有办法避免更新所有属性文件? 问题答案: 您是否正在寻找此处记录的PropertyOverri