天天看點

一個Maven工程中,不同的子產品需要不同的JDK進行編譯的解決方案

本人在建構資料庫分區,分表的時候,由于jdbc3(jdk1.5中實作)和jdbc4(jdk1.6後實作)兩個規範上存在相當大的差異,導緻無論采用哪個jdk進行編譯,都會導緻整個pom樹無法正确建構,總有一個要出問題。

說實際的這個問題卡了比較長的時候,最後還是研究maven編譯插件,才真正解決。

解決的辦法就是,在主pom中定義下面的編譯插件:

<a href="http://my.oschina.net/tinyframework/blog/200408#">?</a>

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

<code>&lt;</code><code>build</code><code>&gt;</code>

<code>    </code><code>[...]</code>

<code>    </code><code>&lt;</code><code>plugins</code><code>&gt;</code>

<code>      </code><code>&lt;</code><code>plugin</code><code>&gt;</code>

<code>        </code><code>&lt;</code><code>groupid</code><code>&gt;org.apache.maven.plugins&lt;/</code><code>groupid</code><code>&gt;</code>

<code>        </code><code>&lt;</code><code>artifactid</code><code>&gt;maven-compiler-plugin&lt;/</code><code>artifactid</code><code>&gt;</code>

<code>        </code><code>&lt;</code><code>version</code><code>&gt;3.1&lt;/</code><code>version</code><code>&gt;</code>

<code>        </code><code>&lt;</code><code>configuration</code><code>&gt;</code>

<code>          </code><code>&lt;</code><code>verbose</code><code>&gt;true&lt;/</code><code>verbose</code><code>&gt;</code>

<code>          </code><code>&lt;</code><code>fork</code><code>&gt;true&lt;/</code><code>fork</code><code>&gt;</code>

<code>          </code><code>&lt;</code><code>executable</code><code>&gt;${jdk1.5javac}&lt;/</code><code>executable</code><code>&gt;</code>

<code>          </code><code>&lt;</code><code>compilerversion</code><code>&gt;1.5&lt;/</code><code>compilerversion</code><code>&gt;</code>

<code>        </code><code>&lt;/</code><code>configuration</code><code>&gt;</code>

<code>      </code><code>&lt;/</code><code>plugin</code><code>&gt;</code>

<code>    </code><code>&lt;/</code><code>plugins</code><code>&gt;</code>

<code>  </code><code>&lt;/</code><code>build</code><code>&gt;</code>

在dbclusterjdbc4中添加下面的編譯插件:

<code>          </code><code>&lt;</code><code>executable</code><code>&gt;${jdk1.6javac}&lt;/</code><code>executable</code><code>&gt;</code>

<code>          </code><code>&lt;</code><code>compilerversion</code><code>&gt;1.6&lt;/</code><code>compilerversion</code><code>&gt;</code>

然後在settings.xml中定義jdk1.5javac 和jdk1.6javac變量,指向兩個jdk的javac檔案即可。