2009-12-24 95 views
0

我有一個多模塊項目,我正在使用程序集插件來構建一個tar文件。我已經使用moduleSets標記將所有模塊包含在程序集插件中。Maven Assembly插件 - 包括回購罐子

<moduleSets> 
    <moduleSet> 
     <includes> 
      <include>module1</include> 
      <include>module2</include> 

我所有的模塊瓶裝在一個lib文件夾中。我想從本地maven倉庫添加mysql jar到包含我所有其他模塊的相同lib文件夾。在模塊集中添加本地存儲庫jar似乎不起作用。

[WARNING] The following patterns were never triggered in this artifact inclusion filter: 
o 'mysql.mysql-connector-java:mysql-connector-java-version' 

如何從maven存儲庫中包含jar包。

回答

1

我不認爲你需要做任何特別的事情,只要確保mysql在你的項目中被列爲依賴項並且它應該可以工作。同樣適用於模塊依賴關係 - 只需將它們列爲依賴關係即可。以下是彙編插件的典型配置。

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-assembly-plugin</artifactId> 
    <configuration> 
     <descriptorRefs> 
     <descriptorRef>jar-with-dependencies</descriptorRef> 
     </descriptorRefs> 
    </configuration> 
    <executions> 
     <execution> 
     <id>make-assembly</id> 
     <phase>package</phase> 
     <goals> 
      <goal>single</goal> 
     </goals> 
     </execution> 
    </executions> 
    </plugin> 
2

我認爲你需要聲明你的mysql罐子在includes子元素一個dependencySet的。

事情是這樣的:

<assembly> 
    <id>my-assembly</id> 
    ...  
    <dependencySets> 
    <dependencySet> 
     <outputDirectory>/lib</outputDirectory> 
     <includes> 
     <include>mysql:mysql-connector-java</include> 
     </includes> 
     <unpack>false</unpack> 
     <scope>runtime</scope> 
    </dependencySet> 
    </dependencySets> 
    ... 
</assembly> 

參考Descriptor Format文檔和/或Maven的書爲此元素的更多詳細信息,章12.5.4. dependencySets Section

+0

+1。另一個好的選擇是將這個mysql連接器添加到需要它作爲運行時依賴項的模塊中。 – cetnar 2009-12-24 09:32:24

0

我有同樣的問題,並通過更改範圍上的POM依賴編譯來解決它。

<dependency> 
     <groupId>mysql</groupId> 
     <artifactId>mysql-connector-java</artifactId> 
     <scope>compile</scope> 
    </dependency>