Использование maven2 для сборки пакета C / C ++ на основе autotools - PullRequest
3 голосов
/ 10 октября 2008

Я работаю над коллекцией компонентов MATLAB, Java и C / C ++, которые все взаимодействуют, но имеют совершенно разные этапы компиляции / установки. В настоящее время мы ничего не компилируем для MATLAB, используем maven2 для наших сборок и модульных тестов Java и используем автоинструменты для наших сборок и модульных тестов C / C ++.

Я бы хотел перенести все в одну систему сборки и модульного тестирования, используя maven2, но не смог найти плагин, который позволит кодовому потоку C / C ++ оставаться на основе autotools и просто обернуть его в maven строить. Необходимость разорвать поддержку autotools и воссоздать все зависимости в maven, скорее всего, нарушает условия сделки, поэтому я ищу способ, которым maven и autotools хорошо играют вместе, вместо того, чтобы выбирать между ними.

Это возможно или даже желательно? Есть ли ресурсы, которые я упустил из виду?

Ответы [ 2 ]

1 голос
/ 02 апреля 2009

Вы пропустили maven cbuild parent suite. взгляните на раздел "make-maven-plugin" для более подробной информации.

1 голос
/ 10 октября 2008

Я действительно не знаю автоинструментов, но разве вы не можете использовать плагин maven exec , который позволяет вам выполнять системные команды (или программы на Java)? Например:

<build>
  <plugins>
    <plugin>
      <groupId>org.codehaus.mojo</groupId>
      <artifactId>exec-maven-plugin</artifactId>
      <executions>
        <execution>
          <id>exec-one</id>
          <phase>compile</phase>
          <configuration>
            <executable>autogen</executable>
            <arguments>
              <argument>-v</argument>
            </arguments>
          </configuration>
          <goals>
            <goal>exec</goal>
          </goals>
        </execution>

        <execution>
          <id>exec-two</id>
          <phase>compile</phase>
          <configuration>
            <executable>automake</executable>
            <arguments>
              <argument>-v</argument>
              <argument>[other arguments]</argument>
            </arguments>
          </configuration>
          <goals>
            <goal>exec</goal>
          </goals>
        </execution>
      </executions>
    </plugin>
  </plugins>
</build>

Я не тестировал фрагмент pom выше, но он дает вам несколько советов о том, как действовать.

...