2008-10-10 141 views
3

我正在研究一个集合MATLAB,Java和C/C++组件,这些组件都是相互操作的,但它们有着明显不同的编译/安装步骤。我们目前不为MATLAB编译任何东西,为我们的Java构建和单元测试使用maven2,并使用autotools进行C/C++构建和单元测试。使用maven2构建基于自动工具的C/C++包

我想将所有东西都移到一个构建和单元测试系统,使用maven2,但一直未能找到一个插件,它允许C/C++代码流保持基于自动工具的状态,并简单地将其包装在一个maven构建。不得不拆分自动工具支持并重新创建maven中的所有依赖关系,这很可能是一种破坏行为,所以我正在寻找一种方法让maven和autotools可以很好地一起玩,而不必在两者之间进行选择。

这是可能的甚至是可取的?那里有我忽视的资源吗?

回答

1

我真的不知道autotools,但不能使用maven exec plugin,它允许您执行系统命令(或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片段以上,但它提供了有关如何进行一些提示。

+0

我正在寻找某种方法,我不必将每个maven命令转换为系统命令。它使维护变得复杂,并且不像Java构建那么干净。如果我最终不得不编写所有脚本,我最终可能会在C/C++工具的maven之外工作。 – jvasak 2008-10-10 14:38:00

1

你确实忽视了maven cbuild parent套件。请参阅“make-maven-plugin”部分以获取更多详细信息。

+0

这看起来很有希望,但他们仍然只声称alpha状态。肯定是跟踪和正确的东西沿我想要的东西。测试完可用功能后,我会更新更多内容。 – jvasak 2009-04-02 11:36:47