根据Codehaus,有一个maven属性${basedir}
如果在资源中包含属性文件(具有${basedir}占位符),并为资源插件启用过滤,则会发现将basedir的构建时间替换为属性文件.然后,您可以使用Properties代码中的实例加载它.
在/ src/main/resources中,创建一个名为project.properties的文件,其中包含
project.basedir=${basedir}
Run Code Online (Sandbox Code Playgroud)
然后,在POM中,为/ src/main/resources启用过滤,如上面链接的maven资源过滤文档中所述.
然后,在代码中,在运行时,将属性文件加载到Properties实例中
Properties props = new Properties();
props.load(this.getClass().getResourceAsStream("project.properties"));
String basedir = props.get("project.basedir");
Run Code Online (Sandbox Code Playgroud)
另一种方法是处理一些源文件,并通过挂钩进入process-sources相位进行替换,但这不太容易解释.
我假设从'exec:exec'或'test'运行时,您要这样做。如果是这样,您可以通过
System.getProperties().get("basedir")
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
17227 次 |
| 最近记录: |