Использование maven2 для создания пакета C / C++ на основе autotools

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

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

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

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
3
0
3 520
2

Ответы 2

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

Я искал способ, которым мне не нужно переводить каждую команду maven в системную команду. Это усложняет обслуживание и далеко не так чисто, как сборка Java. Если мне придется писать все сценарии, я, вероятно, буду работать за пределами maven для инструментов C / C++.

jvasak 10.10.2008 18:38

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

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

jvasak 02.04.2009 15:36

Другие вопросы по теме