我有一个Jenkins构建服务器,当新的提交被推送到GitHub项目时,它会自动将项目构建到jar中。我查看了Jenkins创建的文件的文件大小,我感到很惊讶。我得出结论,所有第三方依赖项都包含在jar工件中的 !
我不需要Maven将它们包含在工件中,因为这会大大增加尺寸并且没有用处。所以我摆弄了我的pom.xml文件,但我无法让它工作。依赖关系继续包含在jar中。
我对Maven比较陌生,如果有人可以帮助我,我会非常感激!
来源(如果您需要):
答案 0 :(得分:1)
您可以通过提供应该包含的范围来避免将依赖项打包到jar文件中。但是由于我查看了您的pom.xml描述符并且没有发现任何错误配置,我建议使用maven-jar-plugin
来排除所有第三方库,如下所示:
<project>
...
<build>
<plugins>
...
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>${maven-jar-plugin.version}</version>
<configuration>
<excludes>
<exclude>*.jar</exclude>
</excludes>
</configuration>
</plugin>
...
</plugins>
</build>
...
</project>
希望这会有所帮助。 BR。
答案 1 :(得分:0)
我的猜测是这是根本原因:
<resource>
<directory>libs</directory>
<excludes>
<exclude>**/*.java</exclude>
</excludes>
</resource>
如果您(也)将所有jar放在此文件夹中,那么它们将最终出现在类路径上(请参阅target/classes
),因此它们将成为jar的一部分。
您只需将jar指定为依赖项,Maven将完成剩下的工作。
资源用于非java(或不可编译)文件,它们也应该在类路径中,比如Spring或Hibernate的配置文件