如何使用 maven 中的属性对路径中的文件做出反应?

发布于 2024-10-17 05:06:24 字数 339 浏览 2 评论 0原文

我想仅当某个文件不存在时才使用我的 Maven 项目的某些插件执行。该文件的路径可以更改 - 这就是为什么它必须包含一个属性(如果情况并非如此,请纠正我)。一个好的方法是对文件使用配置文件激活,但因为路径有一个属性,所以这不起作用(如 Maven '构建配置文件简介')。

也就是说,问题是:您知道一种仅用一个 pom 即可实现所需行为的方法吗?

当然,执行器插件提供了对文件做出反应的有限方式,但我不想必然失败或中断构建。

I want to use some plugin executions of my maven project only when a certain file does not exist. The path to this file can change - that's why it must contain a property (and please correct me if that's not the case). A good way would be to use profile activation with the file, but because the path has a property this doesn't work (as stated in the Maven 'Introduction to build profiles').

That said, the question is: Do you know a way to achieve the desired behaviour only with one pom?

Of course the enforcer plugin offers a limited way of reacting on files but I don't want to necessarily fail or interrupt the build.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

清泪尽 2024-10-24 05:06:24

你其实无能为力。以下是您的选择:

  1. 接受这些限制。配置文件路径的唯一方法是通过系统属性(用户属性是使用配置文件评估的,而不是相反):

    <前><代码><简介>;
    foobar
    <激活>
    <文件><存在>${file.path}

    mvn -Dfile.path=some/path/file.txt 全新安装

  2. 以编程方式调用执行,例如使用 Maven Invoker。要么

    • 编写自定义插件或
    • 编写一个主类并从 Exec:Java
    • 将内联 Groovy 脚本与 GMaven 结合使用

    上述任一选项都必须充当调度程序,根据属性的评估使用调用程序调用 mojos。

There's not really much you can do. Here are your options:

  1. Live with the restrictions. The only way you can configure the file path is through a system property (user properties are evaluated using profiles, not the other way around):

    <profile>
        <id>foobar</id>
        <activation>
            <file><exists>${file.path}</exists></file>
        </activation>
    </profile>
    
    mvn -Dfile.path=some/path/file.txt clean install
    
  2. Invoke the executions programmatically, e.g with the Maven Invoker. Either

    • write a custom plugin or
    • write a main class and call it from Exec:Java or
    • use an inline Groovy Script with GMaven

    Either one of the above options will have to behave as a dispatcher that invokes mojos using the invoker depending on evaluation of properties.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文