5

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

4

2 回答 2

4

你可以在 Maven 中做任何事情。它通常有一个默认的方式来做每一件事,然后如果你想做一些特别的事情,你可以加入并覆盖。有时需要大量的堆栈溢出和头疼才能弄清楚。

甚至还有一个官方的JFlex Maven 插件

只要有可能,就找一个让 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>

这感觉像是行家的做事方式。把你的东西放在正确的文件夹(src/main/flex),这个插件会自动将它构建到你的项目中。如果你想做更高级的定制东西,有一些选择。但是 Maven 就是要支持约定而不是配置。

于 2010-10-23T16:43:26.157 回答
0

坦率地说,我认为您当前的思维方式映射到 ant 比映射到 maven 好得多,我建议从那开始。

于 2010-10-23T16:20:07.753 回答