2011-03-02 41 views
3

瞭解了我可以找到的每個帖子和問題後,我很難找到比只使用下面的配置文件更好的方法。我需要採用相同的一組模塊,並針對完全不同的體系結構(J2ME和J2SE)進行編譯,它們需要對某些庫有不同的依賴關係,並且在編譯時需要不同的源/目標/調試設置。使用Maven構建多個java架構的工件(比配置文件更好)?

使用配置文件和分類器,我可以通過使用一個配置文件運行,清理並使用其他配置文件運行構建來完成此操作。分類器整理結果。但是,如果您只是更改配置文件並重新構建,它不會自行清理,它需要多次運行maven,並且不允許同時啓用多個配置文件(以及由此產生的結果當你做的事很糟糕)。

我可以做一些使用附加的工件並強制編譯和jar步驟多次運行?

javac的選項是真正的踢球者:(使用配置文件的依賴性不會引起任何問題)

爲J2ME:
源= 1.4
目標= 1.4
-g:源

爲J2ME調試
源= 1.4
目標= 1.4

爲J2SE
源= 1.5
目標= 1.5

+0

我真的很想幫忙。我能獲得更多信息嗎?你需要每個模塊的多個版本嗎?是否有一個「父」工件,您嘗試擁有多個版本,例如J2ME/J2ME-debug/J2SE的JAR文件。 – DaShaun 2011-03-02 00:24:59

+0

是的,每個jar(多模塊項目)都需要使用這兩個設置進行編譯。我使用頂級pom來驅動所有配置文件和編譯器設置,並將所有單獨的jar作爲模塊引用。它也驅動依賴關係,但這主要是一個運行時問題(我需要J2ME和J2SE的某個jar的不同版本),而且幾乎不像編譯問題那樣有問題。 – Woody 2011-03-02 00:45:17

+0

順便說一句,我也嘗試過執行,但是兩個編譯執行都被執行,然後兩個打包執行都被執行,因此生成的jar全部具有相同的內容。 – Woody 2011-03-02 00:57:59

回答

2

你能明確地調用編譯器插件Maven Compiler Plugin然後定義多次執行。有些事像

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-compiler-plugin</artifactId> 
    <version>2.3.2</version> 
    <executions> 
     <execution> 
      <id>compile1</id> 
      <phase>generate-resources</phase> 
      <goals> 
       <goal>compile</goal> 
      </goals> 
      <configuration> 
       <verbose>true</verbose> 
       <fork>true</fork> 
       <executable><!-- path-to-javac --></executable> 
       <compilerVersion>1.3</compilerVersion> 
      </configuration> 
     </execution> 
     <execution> 
      <id>compile1</id> 
      <phase>generate-resources</phase> 
      <goals> 
       <goal>compile</goal> 
      </goals> 
      <configuration> 
       <verbose>true</verbose> 
       <fork>true</fork> 
       <executable><!-- path-to-javac --></executable> 
       <compilerVersion>1.3</compilerVersion> 
      </configuration> 
     </execution> 
    </executions> 
    </plugin> 
相關問題