我有一个具有多个依赖项的多模块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,但在多次尝试失败后,我仍然不知道如何操作。