我有一個具有多個依賴項的多模塊Maven項目。我想構建一個包含它們的可執行JAR以及我自己編譯的類。我發現maven-assembly-plugin正是我所需要的,除了一個令人討厭的問題。如何在程序集中添加本地依賴項JAR
我的一些依賴項是本地的,並與項目源分佈。我爲他們使用system
範圍。它看起來是這樣的:
<dependency>
<groupId>com.intellij</groupId>
<artifactId>forms_rt</artifactId>
<version>1</version>
<scope>system</scope>
<systemPath>${project.basedir}/lib/forms_rt.jar</systemPath>
</dependency>
的問題是,由於某種原因,這些庫不是包裝並在結果JAR依賴其餘捆綁。
我知道的system
範圍的使用被認爲是不好的做法,事實上,我甚至可以找到他們的一些(雖然較爲陳舊)在Maven倉庫,但無論如何,它讓我爲難,如何將其與maven-得到解決組裝插件。
萬一我的插件配置是這樣的:
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<configuration>
<archive>
<manifest>
<mainClass>repoll.server.Repoll</mainClass>
</manifest>
</archive>
<finalName>${project.build.finalName}-full</finalName>
<appendAssemblyId>false</appendAssemblyId>
<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>
當我明白我必須編寫自定義的描述符,它如包括並解開${project.basedir}/lib
目錄中的所有JAR,但在多次嘗試失敗後,我仍然不知道如何操作。