在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

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

 3. 添加 in project repository,在新机器上执行时就不用运行mvninstall: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

 

怎么把本地的jar包弄到maven里去

假设将包htmlparser.jar放入了项目下的lib目录中 -> ${project}/lib/htmlparser.jar

则pom.xml中应该配置如下:

<dependency>

    <groupId>com.htmlparser</groupId>

    <artifactId>htmlparser</artifactId>

    <version>2.0</version>

    <scope>system</scope>

    <systemPath>${project.basedir}/lib/htmlparser.jar</systemPath>

</dependency>

路径不完整要从项目根目录的下级目录开始好比我这边是这样的:

<dependency>
            <groupId>javabuilder</groupId>
            <artifactId>javabuilder</artifactId>
            <version>1.0</version>
            <scope>system</scope>
            <systemPath>${project.basedir}/src/main/webapp/WEB-INF/lib/javabuilder.jar</systemPath>
</dependency>










本文转自 yntmdr 51CTO博客,原文链接:http://blog.51cto.com/yntmdr/1716495,如需转载请自行联系原作者
目录
相关文章
|
3天前
|
Java Maven
向 Maven 中央仓库上传一个修改过的基于jeecg的autoPOI的 jar包记录(一)
向 Maven 中央仓库上传一个修改过的基于jeecg的autoPOI的 jar包记录
15 0
|
4天前
|
Java Apache Maven
Maven 项目文档
在 `C:/MVN` 目录下创建 Maven 项目 `consumerBanking` 使用命令:`mvn archetype:generate -DgroupId=com.companyname.bank -DartifactId=consumerBanking -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false`。为解决 `mvn site` 命令执行时的 `NoClassDefFoundError`
|
2天前
|
JavaScript 前端开发 Java
java项目的打包将vue放到.jar里面部署
java项目的打包将vue放到.jar里面部署
|
3天前
|
Java Go Maven
向 Maven 中央仓库上传一个修改过的基于jeecg的autoPOI的 jar包记录(二)
向 Maven 中央仓库上传一个修改过的基于jeecg的autoPOI的 jar包记录
10 0
|
3天前
|
XML Java 测试技术
Maven 构建 & 项目测试
本文介绍了如何使用Maven构建和测试Java应用。在`C:/MVN/consumerBanking`项目中,`pom.xml`配置了JUnit作为测试框架。执行`mvn clean package`命令进行构建,Maven会清理目标目录,编译源码和测试代码,运行测试用例,最后生成`consumerBanking-1.0-SNAPSHOT.jar`。测试报告位于`surefire-reports`文件夹。添加新Java类`Util.java`到项目后,更新`App.java`以使用`Util`类。
|
5天前
|
前端开发 Java Linux
宝塔Linux:部署His医疗项目通过jar包的方式
宝塔Linux:部署His医疗项目通过jar包的方式
|
5天前
|
前端开发 Java 应用服务中间件
在虚拟机的Windows操作系统中:通过Jar方式若依项目,以及在外部的访问!
在虚拟机的Windows操作系统中:通过Jar方式若依项目,以及在外部的访问!
|
6天前
|
Java 项目管理 Maven
【揭秘】Maven聚合与继承:如何轻松实现项目依赖管理?
Maven的聚合和继承是Java开发中重要的概念。聚合允许将多个项目组合成一个构建单元,简化多模块项目的构建过程,提高构建效率。继承则让子项目重用父项目的配置和属性,避免了重复定义,增强了项目的一致性和可维护性。通过聚合和继承,Maven为多模块项目的构建和管理提供了高效且灵活的支持,减少了配置冗余,提升了开发效率。
【揭秘】Maven聚合与继承:如何轻松实现项目依赖管理?
|
6天前
|
Java Maven
Maven 项目文档
学习Maven项目文档创作,借助Doxia引擎将内容转化为通用模型。支持Apt(纯文本)、Xdoc(Maven 1.x格式)、FML(FAQ)和XHTML。
|
2月前
|
XML Java Maven
【Maven技术专题】「实战开发系列」盘点Maven项目中打包需要注意到的那点事儿
【Maven技术专题】「实战开发系列」盘点Maven项目中打包需要注意到的那点事儿
44 0

推荐镜像

更多