我正在构建一个包含使用Spring的客户端模块的服务。将实现客户端的服务不包含spring,但它依赖于依赖于Spring的客户端。理想情况下,我希望客户端在JAR中包含所需的Spring依赖项,但我似乎无法弄清楚如何实现这一点。我已经看到了一些使用maven-assembly-plugin的不同例子,但我宁愿不必使用“mvn clean package”之外的东西来实现这一点。
感谢任何帮助。
答案 0 :(得分:2)
maven-shade-plugin允许您构建包含一些(或所有)依赖项的超级jar。它应该允许你做你需要的。
答案 1 :(得分:0)
通过将程序集插件的单个目标绑定到项目的构建生命周期,您可以通过运行mvn clean package
来完成所需的任务。
剪切/粘贴pom配置,以便从插件的usage页面执行此操作,
<project>
[...]
<build>
[...]
<plugins>
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<version>2.2.2</version>
<configuration>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
</configuration>
<executions>
<execution>
<id>make-assembly</id> <!-- this is used for inheritance merges -->
<phase>package</phase> <!-- bind to the packaging phase -->
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>
[...]
</project>
当然,您可以调整使用不同的预定义描述符,甚至使用单独的描述符文件。