2011-05-17 168 views
0

我有一個使用hsqldb 1.8.0.10的maven插件。在從插件我的pom.xml,它聲明如下:在maven和maven插件中選擇依賴版本

<dependency> 
    <groupId>hsqldb</groupId> 
    <artifactId>hsqldb</artifactId> 
    <version>1.8.0.10</version> 
</dependency> 

但是,如果我運行從另一個Maven項目該插件,並且該項目具有HSQLDB的新版本(例如1.9.0),我怎樣才能配置我的插件,他會使用最新版本的hsqldb,而不必更改它的pom.xml?

,並有可能圍繞這個去做其他的方式呢?如果我的其他maven項目使用hsqldb 1.7.0(例如),他會使用maven插件本身指定的1.8.0.10版本?

我希望有人能回答我的問題。

親切的問候,

WALLE的版本

+0

我才明白正確的,要創建一個插件或者利用具有類似http://mojo.codehaus.org/sql-maven-plugin/usage.html依賴插件? – khmarbaise 2011-05-17 16:32:49

回答

1

不同的項目POM版本傳揚你主要問題是可能的,但如果插件由於任何原因不適用於較新的代碼,它可能無法正常工作。

一個插件可以有它自己的個人依賴關係部分,並使用標準的Maven依賴解析,請選擇最高版本。所以,你可以做

<plugin> 
    <groupId>some.group.id</groupId> 
    <artifactId>some.artifact.id</artifactId> 
    <version>someversion</version> 
    <dependencies> 
     <dependency> 
      <groupId>hsqldb</groupId> 
      <artifactId>hsqldb</artifactId> 
      <version>1.9.0</version> 
     </dependency> 
    </dependencies> 
</plugin> 

雖然,我不認爲去其他的方式是可能的。

+0

反過來也是不可能的。項目和插件的類加載器是被隔離的(特別是在Maven 3中)。如果您需要該插件的相同庫的另一個版本,請使用此答案。如果你想爲你的項目依賴關係另一個版本,你將不得不在你的pom中改變它。 Maven是否會通過包含插件來解決項目依賴性問題,這將會是地獄上的:) – Tome 2013-11-08 21:27:52

1

使用性能佔位符,說$ {} hsqldb.version然後你想要把它