簡體   English   中英

如何復制多模塊項目的依賴項?

[英]How to copy dependencies of a multi module project?

我有一個依賴於工作區中不同項目模塊的項目。 我試圖將所有依賴項(包括模塊)復制到lib文件夾中,以創建一個可執行jar,而該jar中沒有打包所有jar。

但是, maven-dependency-plugin一直抱怨無法將模塊類復制到項目的目標文件夾中。 可能是什么問題?

my.groupt我的模塊1.0

 <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-dependency-plugin</artifactId>
    <executions>
       <execution>
          <id>copy-dependencies</id>
          <phase>package</phase>
          <goals>
             <goal>copy-dependencies</goal>
          </goals>
          <configuration>
             <outputDirectory>${project.build.directory}/lib</outputDirectory>
          </configuration>
       </execution>
    </executions>
 </plugin>

結果:

無法在項目my-project上執行目標org.apache.maven.plugins:maven-dependency-plugin:2.1:copy-dependencies(副本依賴項):從C:\\ workspace \\ my-module \\ target \\ classes復制工件時出錯到C:\\ workspace \\ my-project \\ target \\ lib \\ classes:(拒絕訪問)

失敗的原因是Eclipse中的工作區解析。 Eclipse m2e將自身注入到maven的工件解析中。

因此,當您的my-project嘗試獲取所有依賴項時,工件解析器將不返回jar文件(尚不存在),而是返回依賴項目的classes文件夾。

如果您嘗試使用“運行方式-> maven install”來構建項目,則它應該可以工作。

因此,這是您無法在工作區中輕松解決的情況。 為我的項目打開工作空間分辨率,禁用eclipse中的依賴項插件(生命周期綁定),或使用其他插件(如Assembly)來復制您的依賴關系(順便說一句)。 但是請注意,后者僅在手動調用maven時也有效。

您可能正在尋找Maven Shade插件。

它要靈活得多,但要注意-通過Maven Shade構建的任何模塊都使自動跟蹤依賴關系變得非常困難。 盡量不要使陰影結果成為構建過程的主要結果。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM