首页 > 数据库 > 数据库开发技术 > 如何解决maven打包不包含本地手工配置的jar
由于impala驱动在maven仓库中没有,只能去官网注册下载到本地,然后本地引用依赖,
<dependency><groupId>com.cloudera.impala.jdbc</groupId><artifactId>ImpalaJDBC41</artifactId><version>2.6.4.1005</version><scope>system</scope><systemPath>${project.basedir}/src/lib/ImpalaJDBC41.jar</systemPath></dependency>
一开始本地测试没有问题,但是mvn install的时候,这个jar不能被打包进去,导致线上报错
你可以使用 mvn install:install-file 命令将 JAR 文件安装到本地 Maven 仓库。这样 Maven 就可以像处理其他依赖一样处理这个 JAR 文件。
mvn install:install-file -Dfile=src/lib/ImpalaJDBC41.jar -DgroupId=com.cloudera.impala.jdbc -DartifactId=ImpalaJDBC41 -Dversion=2.6.4.1005 -Dpackaging=jar
然后,你可以在 pom.xml 中使用普通的依赖声明:
<dependency><groupId>com.cloudera.impala.jdbc</groupId><artifactId>ImpalaJDBC41</artifactId><version>2.6.4.1005</version></dependency>
lib 目录并手动添加到构建路径如果你希望将 JAR 文件包括在打包的结果中,而不使用 Maven 的依赖管理,可以将 JAR 文件放入 src/main/resources 目录或 src/main/webapp/WEB-INF/lib 目录(如果是 Web 项目)。这将确保 JAR 文件被包括在构建的 JAR 或 WAR 文件中。
如果这个 JAR 文件在公共 Maven 仓库或私有 Maven 仓库中可用,考虑从这些仓库中添加依赖,而不是直接引用本地 JAR 文件。
你还可以使用 maven-dependency-plugin 插件将 JAR 包包括在最终构建中。这里是一个简单的配置示例,将 JAR 包复制到最终的构建目录中:
<build><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-dependency-plugin</artifactId><version>3.3.0</version><executions><execution><id>copy-dependencies</id><phase>package</phase><goals><goal>copy</goal></goals><configuration><outputDirectory>${project.build.directory}/lib</outputDirectory><includes>ImpalaJDBC41.jar</includes></configuration></execution></executions></plugin></plugins></build>
确保 JAR 文件被正确复制到构建输出目录中。
为了让 Maven 正确处理你的依赖关系,最好将 JAR 文件安装到本地 Maven 仓库或从可用的 Maven 仓库中获取。直接引用本地 JAR 文件并手动管理通常不推荐,因为这会破坏 Maven 的依赖管理和构建流程。
原文作者:HBLOG;如有侵权,请联系管理员删除。