从maven $ {project.basedir}获取最后一个文件夹的名称

时间:2012-03-24 07:12:08

标签: maven maven-2 maven-3

我对Maven有同样的问题,有人关于Ant(How can I get the name of the last folder in my basedir path in Ant?)。

如何从变量$ {project.basedir}中获取最后一个目录名?

例如,如果我的pom.xml位于:

/home/me/project/pom.xml

然后$ {project.basedir} = / home / me / project /

我只想要目录名'project'。

谢谢!

1 个答案:

答案 0 :(得分:11)

使用:${project.file.parentFile.name}

如何解决这个问题:

${project}实际上已解析为MavenProject个对象。从那里,您可以使用bean属性来获取所需的值。在这种情况下:


(编辑:评论后)

使用工件ID的属性不是一个好主意。将${project.file.parentFile.name}属性作为artifactId的一部分使用时,无法解析project.groupId属性,但有些属性可以正常工作(artifact {1} [WARNING] Some problems were encountered while building the effective model for <your groupID>:<your artifactID>:jar:1.0-SNAPSHOT [WARNING] 'artifactId' contains an expression but should be a constant. @ <your groupID>:<your artifact ID>:1.0-SNAPSHOT, <basedir>/pom.xml, line 5, column 14 [WARNING] [WARNING] It is highly recommended to fix these problems because they threaten the stability of your build. [WARNING] [WARNING] For this reason, future Maven versions might no longer support building such malformed projects. 似乎有效。

但是,不建议这样做。实际上,如果您使用任何属性作为工件ID而不是常量,那么在构建项目时会收到​​警告:

{{1}}