不同版本庫的我有一個NetBeans的模塊(Module.jar
)在其pom.xml
宣佈很大的依賴性:構建模塊與Maven的
<groupId>com.company</groupId>
<artifactId>module</artifactId>
<packaging>nbm</packaging>
...
<dependency>
<groupId>org.netbeans.api</groupId>
<artifactId>org-netbeans-modules-editor-lib</artifactId>
<version>${netbeans.version}</version>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.netbeans.api</groupId>
<artifactId>org-netbeans-modules-editor-lib2</artifactId>
<version>${netbeans.version}</version>
</dependency>
...
<properties>
<netbeans.version>RELEASE701</netbeans.version>
</properties>
正如你可以看到,該版本被聲明爲變量netbeans.version
。
現在我有兩個使用此模塊的Netbeans平臺應用程序:ApplicationA
使用NB平臺版本6.9.1和ApplicationB
使用NB平臺7.0.1。雙方將宣佈Module
作爲一個依賴:
<dependency>
<groupId>com.company</groupId>
<artifactId>module</artifactId>
<version>3.0.10</version>
</dependency>
Module
編譯罰款與平臺的兩個版本,但如果用同樣的版本庫的編譯只會正常運行當前的應用程序使用(即Module
會如果使用版本6.9.1進行編譯,則只能在ApplicationA
上正常運行,並且如果使用版本7.0.1進行編譯,則只能在ApplicationB
上正常運行)。
如何/在哪裏可以定義變量netbeans.version
,那麼Module
將根據將使用它的應用程序編譯正確版本的庫?
你確定這是一個編譯的問題,或者更確切地說,你的模塊在不同版本的org-netbeans-modules-editor-lib中添加了運行時執行的事實嗎? – mrembisz 2012-02-01 12:27:32
爲什麼不直接將模塊編譯爲較低版本並使NetBeans依賴項不可傳遞,或者在將模塊添加到項目時將其排除?這樣,項目將不得不定義netbeans版本,並且模塊不會以傳遞方式添加該依賴項。 – Thomas 2012-02-01 12:31:13
@mrembisz,它可能是它在運行時加載不同的版本 - 無論哪種方式,不應該在某個地方指定版本,所以它總是會加載正確的版本?也編輯的問題,因爲一些(不是全部)庫使用'運行時 '。 –
Marcelo
2012-02-01 12:34:50