2008-10-10 50 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