【问题标题】:Using maven for perl projects在 perl 项目中使用 maven
【发布时间】:2012-07-03 00:58:59
【问题描述】:

我们已经看到 Maven 在我们基于 Java 的项目中表现出色。我从this question 看到,非 java 项目也可以改装为 maven 模块,尽管它们只会将 maven-exec-plugin 用于不同的目标。在谷歌搜索中,我看到了maven-perl-plugin,但它仍然是一个 1.0-SNAPSHOT,有零星的更新,但看起来很有希望。有没有人使用过这个或任何其他竞争对手,可以让我不必编写无趣的 pom 样板?

编辑:实际上该项目的主要部分是 n 层 Java 模块,并且有一个非常小的 perl/python 组件(用于后端解析),我正在寻找一个适合这个生态系统的地方。我获得了一些优势,比如使用 maven-release-plugin 进行标签/分支创建和发布过程,并将它作为同一代码库的一部分给了我版本号的一致性。因此,虽然我不打算对 perl 模块使用 maven 的依赖项检索手段(抱歉,我没有对 maven-perl-plugin boy 进行足够的研究),但我想知道什么时候要牢记做这样的事情(或者如果这样的事情没有意义)例如模块名称应该是什么 (topLevelModuleName-perl?) 以及 src/main/perl 和 src/test/perl 下的结构。我知道我可能会走下一个滑坡,试图将一个东西硬塞到另一个东西上,但问一下也无妨:)

【问题讨论】:

    标签: perl maven maven-plugin


    【解决方案1】:

    这太疯狂了。使用像 Module::Build 之类的健全的东西,对于依赖项使用 CPAN(或 cpanm)。说真的,对于任何不是 Java 的东西,你都必须为加载疯狂的插件编写 XML 负载。使用 Module::Build(或任何脚本),您可以对构建进行编程,并且可以使用任何可用于该语言的库(您只需要在之前使用 cpanm 获取它们)。

    【讨论】:

    • @Kilokahn 打包 Perl 模块并不好玩,最好留给专门为处理它而开发的工具。
    【解决方案2】:

    在这一点上,我倾向于不使用 maven-perl-plugin 作为其依赖功能,因为它似乎与 Dist::Zilla 和 Module::Build 等许多成熟的同行重叠。由于没有人真正对编辑发表评论,我只剩下维护现有的项目结构,如

    <perl-module-name>
        -lib
        -etc
        -bin
    

    除了添加一个 pom 文件并将 tarball 作为输出工件之外,并没有真正改变任何东西。

    欢迎发表任何其他建议。

    【讨论】:

      【解决方案3】:

      我快速浏览了这个插件,但我没有看到引入 Java 和 XML 等依赖项来管理您的项目的意义。

      实际上,我认为我们已经有了很多更好的东西:Dist::Zilla。设置您的项目就像dzil new My::Project 一样简单 - 并且Dist::Zilla 负责其他所有事情。

      没有更多的 Makefiles、READMEs、MANIFESTs...只需输入 dzil build/test/install/release,一切都会根据您的个人资料和 dist.ini 完成。

      如果您缺少 CPAN 的一些依赖项,请将其添加到您的配置中,cpanminus 可以顺利集成到您的新工作流程中。

      [alias]
          instdeps = install --install-command "cpanm ."
      

      【讨论】:

        猜你喜欢
        • 2015-05-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-06-21
        • 2012-10-15
        • 2012-11-09
        相关资源
        最近更新 更多