zoukankan      html  css  js  c++  java
  • Maven中使用本地JAR包

    在Maven项目中使用本地JAR包有两种方法:

    1. 使用system scope

    复制代码
      <dependencies>
        <dependency>
          <groupId>org.richard</groupId>
          <artifactId>my-jar</artifactId>
          <version>1.0</version>
          <scope>system</scope>
          <systemPath>${project.basedir}/lib/my-jar.jar</systemPath>
        </dependency>
      </dependencies>
    复制代码

    system scope引入的包,在使用jar-with-dependencies打包时将不会被包含,可以使用resources将本地包打进jar-with-dependencies

    复制代码
    <build>
        <plugins>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-shade-plugin</artifactId>
            <executions>
              <execution>
                <id>make-assembly</id>
                <phase>package</phase>
                <goals>
                  <goal>shade</goal>
                </goals>
                <configuration>
                  <descriptorRefs>
                    <descriptorRef>jar-with-dependencies</descriptorRef>
                  </descriptorRefs>
                  <finalName>xxx-jar-with-dependencies</finalName>
                </configuration>
              </execution>
            </executions>
          </plugin>
        </plugins>
         <resources>
          <resource>
            <targetPath>lib/</targetPath>
            <directory>lib/</directory>
            <includes>
              <include>**/my-jar.jar</include>
            </includes>
          </resource>
        </resources>
      </build>
    复制代码

    生成的xxx-jar-with-dependencies.jar中,将会包含lib目录以及my-jar.jar,并且能够被在执行的时候被找到。

    有的时候这种方法会实效,比如JDBCDriver在声明的时候Class.forName("xxx.Driver")就会说找不到类,用下面两种方法就可以。

    2. 将jar包安装到本地repository中

    mvn install:install-file -Dfile=my-jar.jar -DgroupId=org.richard -DartifactId=my-jar -Dversion=1.0 -Dpackaging=jar

     3. 添加 in project repository,在新机器上执行时就不用运行mvn install:install-file命令了

    复制代码
    <repository>
        <id>in-project</id>
        <name>In Project Repo</name>
        <url>file://${project.basedir}/lib</url>
    </repository>
    
    <dependency>
        <groupId>org.richard</groupId>
        <artifactId>my-jar</artifactId>
        <version>1.0</version>
    </dependency>
    复制代码

    你的jar包及路径必须严格遵循格式:

    /groupId/artifactId/version/artifactId-verion.jar

    本例中: lib/org/richard/my-jar/1.0/my-jar-1.0.jar

  • 相关阅读:
    [20191108]内核参数tcp_keepalive与sqlnet.ora expire_time的一些总结.txt
    [20191106]善用column格式化输出.txt
    [20191101]通过zsh计算sql语句的sql_id.txt
    [20191101]完善vim的bccalc插件8.txt
    [20191031]完善vim的bccalc插件7.txt
    [20191013]oracle number类型存储转化脚本.txt
    [20191012]组成rowid.txt
    文件下载中文问题
    关闭 macOS Google Chrome 黑暗模式风格
    删除最后一次提交
  • 原文地址:https://www.cnblogs.com/chenzc/p/5956237.html
Copyright © 2011-2022 走看看