向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>
              <descriptorRefs>
<configuration> <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

http://mvnrepository.com/中找到对应的jar:

以 spring-context-support-3.1.0.RELEASE.jar 为例,在 @3图中已经给出这个 jar 包的 groupId,artifactId,version信息,

手动安装的时候这些信息不要改,否则 Maven 项目移植的话,jar 包下载就会失败。顺便把这信息帖下面,方便对照:

< dependency >      < groupId > org.springframework </ groupId >      < artifactId > spring-context-support </ artifactId >      < version > 3.1.0.RELEASE </ version > </ dependency >

Maven 安装 JAR 包的命令是:

mvn install:install-file -Dfile=jar包的位置 -DgroupId=上面的groupId -DartifactId=上面的artifactId -Dversion=上面的version -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>

  • 7
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
Maven是一个强大的项目管理工具,可以自动解析和管理项目依赖的第三方库。但有时在导入本地的jar包时,可能会遇到无法解析的问题。 首先,确保你的本地jar包存在并且路径是正确的。可以通过在项目使用绝对路径或相对路径来指定本地jar包的位置。 其次,检查你的项目的pom.xml文件是否正确地配置了本地jar包的依赖。在pom.xml文件,使用<dependency>标签来定义项目依赖。确保你已经正确指定了本地jar包的groupId、artifactId和version等信息。 如果以上步骤都正确无误,还是无法解析本地jar包,那么可能是Maven本身的配置问题。可以尝试以下解决方法: 1. 清理本地仓库。有时Maven缓存会保存一些已下载但已经被修改的jar包信息,导致无法解析新的本地jar包。可以通过删除~/.m2/repository目录下的相关jar包来清理本地仓库。 2. 更新Maven的依赖。执行maven命令"mvn clean install"来强制Maven重新解析和下载项目的所有依赖。 3. 检查Maven配置文件。在本地Maven安装目录下的conf/settings.xml文件可以配置Maven的本地仓库和镜像等信息。确保这些配置是正确的。 4. 检查Maven的版本。有时某些版本的Maven存在bug,可能会导致无法解析本地jar包。可以尝试升级或降级Maven的版本来解决问题。 总之,当无法解析本地jar包时,需要仔细检查jar包路径和pom.xml文件的依赖配置,并且尝试清理本地仓库、更新Maven依赖、检查配置文件和Maven版本等操作,来解决Maven导入本地jar包无法解析的问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值