【发布时间】:2020-10-30 07:26:06
【问题描述】:
我正在尝试获取由原型生成的资源的绝对路径。
我试图用
替换上面的行- “${project.basedir}”
- “${project.build.directory}”
- “${basedir}”
- “${outputDirectoryFile}”
- "${outputDirectoryFile}/${artifactId}"
- "${basedir}/${artifactId}"
但这些都不起作用。我得到的最远的结果是正确的 /${artifactId} 部分。
该文件在 archetype-metadata.xml 中被列为过滤
有没有一个变量可以用来获取生成的目录的绝对路径?
【问题讨论】:
-
我对flux了解不够,但是如果
es-crawler.flux在运行时使用,你不应该尝试使用Maven占位符,因为Maven只是关于构建时间。.看起来像是一个好方法,或者特定于操作系统,例如echo $(pwd)(*nix) /echo %cd%(Windows) -
感谢@RobertScholte。我们需要一个绝对路径而不是相对路径,而且我们不能在 Flux 中运行脚本。我不想在运行时而是在构建时使用占位符,以便生成的默认值指向绝对路径。原型在构建时会生成许多其他资源,不明白为什么我们不应该对这个做同样的事情。
-
我仍然认为这种方法是有问题的:一旦绝对路径出现在您的可交付成果中,您就完蛋了。
-
我无法完全理解这个问题。你试图把那个变量放在哪里?到 es-crawler.flux 的第 25 行?我认为检查 maven 资源插件可能会有所帮助maven.apache.org/plugins/maven-resources-plugin/index.html 首先尝试 ${project.build.resources}。如果您的资源有任何自定义目录配置,请使用插件设置正确的资源目录
-
@RobertScholte '构建时间' 可能不是正确的术语。我的意思是生成时间,即当用户调用 'mvn archetype:generate'
标签: maven maven-archetype