Как структурировать проект Maven3 для создания входных данных для создания источников в другом проекте? - PullRequest
0 голосов
/ 09 июня 2011

Мне нужно сгенерировать несколько небольших текстовых файлов, которые будут использоваться в качестве входных данных на этапе создания источников в другом проекте (ввод файлов данных в FMPP / FreeMarker). Генератором является исходный код Java, то есть код, который генерирует текстовые файлы, компилируется в первом проекте. В этом сценарии как файлы данных обычно передаются из одного проекта в другой?

Я мог бы собрать дюжину неудачных способов сделать это - я ищу лучшую практику.

В настоящее время я избегаю этой проблемы, поскольку первый проект просто создает исполняемый файл jar, который запускается вторым проектом для создания файлов данных. Но на самом деле нет причин для того, чтобы код был «общедоступным» - чтобы его можно было установить - вывод первого проекта действительно должен быть просто файлами TDD.

Ответы [ 2 ]

0 голосов
/ 10 июня 2011

Надеюсь, я вас не пойму.Вы можете запустить проект maven2 с помощью exec-maven-plugin .Это запустит первый проект и произведет ввод для следующего.Если вам нужно скопировать файлы * .tdd, возможно, вы можете использовать для этого maven-resources-plugin .Надеюсь, это поможет.

0 голосов
/ 09 июня 2011

Я не уверен, что у меня есть полная картина того, что вы пытаетесь сделать здесь, но мне кажется, что вы должны использовать плагин зависимостей 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>
...