java - 如何从 java 代码获取 Maven 项目 BaseDir()

标签 java maven-2

<分区>

如何从我的 Java 代码中获取 Maven 项目的 basedir()?

最佳答案

根据 maven doc ,有一个 Maven 属性 ${project.basedir}

如果您在资源中包含一个属性文件,该文件具有 ${project.basedir} 占位符和 enable filtering for the resources plugin ,您会发现在构建时将 basedir 替换到属性文件中。然后,您可以在代码中使用 Properties 实例加载它。

在/src/main/resources 中,创建一个名为 project.properties 的文件,包含

my.basedir=${project.basedir}

然后,在 POM 中,启用对/src/main/resources 的过滤,如上面链接的 maven 资源过滤文档中所述。

然后,在代码中,在运行时,将属性文件加载到 Properties 实例中

Properties props = new Properties();
props.load(this.getClass().getResourceAsStream("project.properties"));
String myBasedir = props.get("my.basedir");

另一种方法是处理一些源文件并通过挂接到 process-sources 阶段在其中进行替换,但这不太容易解释。

关于java - 如何从 java 代码获取 Maven 项目 BaseDir(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7808664/

相关文章:

java - Spring Data JPA - 按 Id 绑定(bind)而不是对象

java - Spring Cloud SQS 消费会阻塞,直到所有消息均已处理完毕

maven-2 - 如何手动禁用/黑名单 Maven 存储库

svn - Hudson “Perform Maven Release”无法在其他端口上提交svn + ssh

java - 如何强制子类在编译时初始化父类(super class)属性?

java - ImageView 在其可绘制对象之间闪烁

java - 生成maven文档时出错

java - 创建包含多个文件和目录的 Maven 版本

eclipse - Ubuntu 中的 Maven 主页

java - 如何将 BiPredicate 与 anyMatch() 一起使用