Nai*_*aba 4 maven-2 maven-3 maven
我对Maven有同样的问题,有人有关于Ant的问题(如何在Ant的基础路径中获取最后一个文件夹的名称?).
你如何从变量$ {project.basedir}获得最后一个目录名?
例如,如果我的pom.xml位于:
/home/me/project/pom.xml
然后$ {project.basedir} =/home/me/project /
我只想要目录名'project'.
谢谢!
pru*_*nge 12
使用: ${project.file.parentFile.name}
如何解决:
在${project}实际解析到MavenProject对象.从那里,您可以使用bean属性来获取所需的值.在这种情况下:
file属性(通过getFile())parentFile在java.io.File上使用该属性(通过getParentFile())nameFile 的属性来获取没有路径信息的名称(通过getName())(编辑:评论后)
使用工件ID的属性不是一个好主意.${project.file.parentFile.name}使用它作为artifactId的一部分时无法解析该属性,但是某些属性确实有效(project.groupId因为artifactId似乎有效).
但是,不建议这样做.实际上,如果您使用任何属性作为工件ID而不是常量,那么在构建项目时会收到警告:
[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.
Run Code Online (Sandbox Code Playgroud)