如何构建Maven3项目以生成另一个项目中的生成源的输入?

时间:2011-06-09 12:37:09

标签: maven-2 maven maven-3

我需要生成一些小文本文件,这些文本文件将在另一个项目的生成源阶段(输入到FMPP / FreeMarker的数据文件)中用作输入。生成器是Java源代码 - 也就是说,生成文本文件的代码在第一个项目中编译。在这种情况下,数据文件通常如何从一个项目传递到另一个项目?

我可以拼凑十几种蹩脚的方法来做到这一点 - 我正在寻找最佳实践。

目前,我通过让第一个项目生成一个可执行jar来避免这个问题,该jar由第二个项目运行以生成数据文件。但是没有理由让代码“公开” - 要安装 - 第一个项目的输出真的应该只是TDD文件。

2 个答案:

答案 0 :(得分:0)

我不确定我是否已经完全了解了您在这里要做的事情,但听起来我应该使用maven依赖插件。

我假设第一个项目会创建一个包含第二个项目和其他项目所需的数据文件的工件。第二个项目可以使用依赖插件将该工件解压缩到目标/生成源中,或者作为其构建的一部分需要它。

例如:

  <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-dependency-plugin</artifactId>
    <version>2.1</version>
    <executions>
      <execution>
        <id>unpack-interfaces</id>
        <phase>initialize</phase>
        <goals>
          <goal>unpack-dependencies</goal>
        </goals>
        <configuration>
          <includeArtifactIds>first-project-artifact</includeArtifactIds>
          <includes>*.TDD</includes>
        </configuration>
      </execution>
    </executions>
  </plugin>

答案 1 :(得分:0)

我希望我不会误解你。您可以使用exec-maven-plugin运行maven2项目。这将运行第一个项目并为下一个项目生成输入。如果您要复制* .tdd文件,也许您可​​以使用maven-resources-plugin。希望它有所帮助。