从GNUMake迁移到Maven

时间:2010-10-23 15:52:54

标签: java maven-2 jflex jflex-maven-plugin

我一直是Make构建系统的长期用户,但我决定开始学习Maven构建系统。虽然我已经阅读了大多数在线文档,但似乎没有人能够给出我正在寻找的类比。我理解系统的生命周期,但我没有看到一个编译步骤依赖项的引用。例如,我想生成一个JFlex语法作为编译生命周期步骤的一部分。目前,我认为无法将该步骤作为预编译阶段。文档似乎在这方面受到限制。一般来说,步骤依赖的概念似乎被烘焙到Maven中,并且需要插件才能进行任何更改。是这样的吗?我缺少什么,因为目前Maven构建系统在如何设置编译步骤方面似乎非常有限。

2 个答案:

答案 0 :(得分:4)

你可以在Maven做任何事情。它通常有一种默认的方式来做每件事,然后你可以挂钩并覆盖,如果你想做一些特别的事情。有时它需要大量的Stack Overflowing和头部刮擦来解决它。

甚至有一位官员JFlex Maven plugin

尽可能找到制作Maven插件的人做你想做的事。即使它不是100%正确,它至少可以让你知道如何让maven做点什么。

最低配置

此配置为src / main / jflex /中找到的所有语法文件( .jflex,*。jlex,* .lex, .flex)生成解析器的java代码。子目录。生成的Java源代码的名称和包是语法中定义的。生成的Java源代码放在target / generated-source / jflex中,位于包名称上的Java约定之后的子目录中。 的pom.xml

<project>
  <!-- ... -->
  <build>
    <plugins>
      <plugin>
        <groupId>de.jflex</groupId>
        <artifactId>jflex-maven-plugin</artifactId>
        <version>1.6.0</version>
        <executions>
          <execution>
            <goals>
              <goal>generate</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
    </plugins>
    <!-- ... -->
  </build>
  <!-- ... -->
</project>

这感觉像是做事的maven方式。把你的东西放在正确的文件夹(src / main / flex)中,这个插件会自动将它构建到你的项目中。如果你想要do fancier custom stuff, there are some options。但Maven完全赞成约定优于配置。

答案 1 :(得分:0)

坦率地说,我认为你现在的心态映射对于蚂蚁而不是maven,我建议从那开始。