java - Maven:如何在 Maven 项目中打包外部 jars(文件夹)
问题描述
我在项目的构建路径中添加了一组外部 jar(数百个)以使其正常工作。但是在包装时它失败了,因为这些罐子不适用于 maven。
我看过很多文章,所有的解决方案(比如在系统路径中添加 jar)都只针对一个 jar。
<dependency>
<groupId>com.sample</groupId>
<artifactId>sample</artifactId>
<version>1.0</version>
<scope>system</scope>
<systemPath>${project.basedir}/src/main/resources/Name_Your_JAR.jar</systemPath>
</dependency>
有什么方法可以将 jars(文件夹)组添加到项目的包装中?或我的项目可以成功构建的任何其他解决方案?
can we create a single jar containing all my jars inside and then use the system scope of maven
我尝试通过创建 jar
jar -cvf my_jar.jar *
并将这个 jar 放在系统范围内。但这对我不起作用。
解决方案
<dependency>
坏消息:对于一个正确的 Maven 项目,您需要添加您在 POM 中使用的每个工件。
好消息:我非常怀疑这 100 个 jar 是否全部 - 直接用于您的源代码 - 在 MavenCentral 等公共 Maven 存储库中不可用
所以更好的策略是找出你真正需要的东西并在 MavenCentral 中找到它。然后 Maven 会为你找到所有的传递依赖。因此,如果您真的需要 10 个 jar 并且所有其他 jar 只是您的依赖项的依赖项,只需添加这 10 个(来自 MavenCentral)就可以了。
推荐阅读
- if-statement - Azure 逻辑应用 Odata 过滤器查询与两列上的 if 语句
- javascript - 正则表达式 4 捕获组
- json - 在 JSONSchema 中,如何验证模式是否至少具有两个属性之一?
- angular - ERROR 错误:找不到名称为“mark_each_qn”的控件
- ios - 按小数排序
- c# - Chronium 列表框中的实现历史| WPF
- sql-server - yyyymmdd 格式的上个月的最后一天
- android - 错误 - llij.ide.plugins.PluginManager - org/w3c/dom/ElementTraversal
- html - Bootstrap 5中的两列折叠导航栏不起作用
- javascript - Angular.js:如何在开发者控制台中访问工厂方法内部定义的变量