maven中mvn install和mvn package打包时加上本地jar
在intellij中连接dremio数据库,可以连上。但是在新的linux环境中找不到driver。因此需要在打包时也加上本地dremio驱动jar包。
方法一:先将本地jar mvn install,再mvn package
1. 在intellij中project根目录创建lib文件夹,然后将dremio驱动文件放在 ${pom.basedir}/lib/ 中。
2. 修改pom.xml文件,加上如附件 dependency,主意要用 ${pom.basedir},尽量不要用${project.basedir},否则可能会出错。
3. intellij中编译运行,保证能通过。
4. 运行mvn install 将iar文件打包到本地仓库,可以用windows自带的command line,也可以用intellij中的 Execute Maven Goal。
mvn install:install-file -DgroupId=com.dremio.jdbc.Driver -DartifactId=dremio -Dversion=17.0.0-202107060524010627-31b5222b -Dpackaging=jar -Dfile=${pom.basedir}/lib/dremio-jdbc-driver-17.0.0-202107060524010627-31b5222b.jar
5. 将dependency 中有关jar文件地址的部分注释掉。
6.intellij中右上角Maven的图标中找到一个 m 的图标,tooltip为 Execute Maven Goal,执行 mvn package assembly:single
我这里在intellij中下面Terminal中执行命令失败,因为jdk不同。所以尽量不要在这里运行。
附pom.xml
<dependency> <groupId>com.dremio.jdbc.Driver</groupId> <artifactId>dremio</artifactId> <version>17.0.0-202107060524010627-31b5222b</version> <!--scope>system</scope> <systemPath>${pom.basedir}/lib/dremio-jdbc-driver-17.0.0-202107060524010627-31b5222b.jar</systemPath--> </dependency> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-assembly-plugin</artifactId> <version>3.0.0</version> <configuration> <descriptorRefs> <descriptorRef>jar-with-dependencies</descriptorRef> </descriptorRefs> <archive> <manifest> <mainClass>主程序入口.Main</mainClass> </manifest> </archive> </configuration> </plugin> </plugins> </build>
有时候,dcap-common-test编译失败,是因为dcap-common-test会依赖dcap-integration-test里的方法,dcap-integration-test更新之后,dcap-common-test并没有拿到最新的jar。解决方法
intellij中,打开dcap-integration-test - 右上角,Maven工具栏选择 Execute Maven Goal(执行的小图标,其tooltip是Execute Maven Goal)- 输入 mvn install -DskipTests=true 执行,此步会更新.m2中的jar包 - 再重新编译dcap-common-test成功