springboot怎么使用maven打包时将本地jar包一块打进去

本文详细介绍了如何在Eclipse和IntelliJ IDEA中手动引入并打包本地Jar包,包括创建lib文件夹、配置pom文件、调整spring-boot-maven-plugin设置等关键步骤,确保第三方库能正确包含在最终的发行包中。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

EClipse:

1、我们需要手工引入本地jar包

      1.1  选中工程-->单击鼠标右键(选择如下图所示)

      

      1.2 然后添加需要引入的本地jar包

    

   1.3 点击apply后,点击ok按钮,就会在下图所示位置找到引入的本地jar包。

   

  2、在下图所示位置创建lib文件夹

        

 3、 将步骤1中引入的jar包拷贝到该lib目录下。

4、在工程的pom文件中,加上如下语句(需根据自己的jar包进行替换)

<dependency>   
   <groupId>com.sap</groupId>  
   <artifactId>sapjco3</artifactId>  
   <version>3.0.12</version>  
   <scope>system</scope>  
   <systemPath>${project.basedir}/src/main/resources/lib/sapjco3.jar</systemPath>  
</dependency>

  5、重新打包,就会发现本地jar包已经被打包到该工程的发行包中。

在使用springboot-1.5.6.RELEASE  版本的时候,依靠以上方法并不能将jar包打进工程中,需要

在pom文件中加上如下代码:

<plugins>
      <plugin>
          <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <configuration>
		     <includeSystemScope>true</includeSystemScope>
		</configuration>
      </plugin>
</plugins>

开发工具idea

1: 将项目打包成 可执行的jar文件

    按照以前整合项目的套路,直接将第三种的jar添加项目lib中即可。我也是这么做的,在项目中新建lib文件夹,将第三放的jar copy进去。

2:依然dependency标签引入第三种jar,写法如下

scopre 写成system , systemPath : 指向jar所在的位置。 不要按照以前的套路,在libraries中添加进来了。

3: 按照上述步骤,ide开发部署是没有问题的。但是打包mvn clean package,第三方的jar,还是未能打进去,运行项目就会提示缺少jar文件。

4:在spring-boot-maven-plugin中configuration下的includeSystemScope属性指定为true即可了。

    goal-repackage属性为true,因为项目是多模块的,不然打包后文件不能将依赖文件打包进去。

将项目打包成war包部署

1:首先修改项目的pom文件,打包类型jar=》war

2: 按照spring boot的官方文档,说只需要添加2中的依赖(scope是provided)。 其他网友也说要在web排除tomcat的依赖,并添加上tomcat-servlet-apide 依赖,以防万一加上吧,谁知道会出现什么事情呢。

3:打war包的时候,有时候会提示说没web.xml文件,加上下面的话明确告诉 没web.xml

4: 重点来了  设置maven-war-plugins插件,否则外部依赖无法打进war包

<think>首先,用户的问题是:“我想在IntelliJIDEA中使用Maven打包如何将依赖库一同打包JAR文件”,这可以简化为“ideamavenbuildjarwithdependencies”。我需要提供一个清晰的、结构化的回答。从系统级指令:-所有行内数学表达式使用$...$,但这个问题是关于Maven和IDEA的,可能不需要数学表达式。我可以避免使用,除非必要。-独立公式使用$$...$$,但同样,可能不适用。-LaTeX语法正确。-使用中文回答。-生成相关问题。-在回答中引用的段落末尾自然地添加引用标识,如[^1]。用户可见层:-回答结构清晰,帮助用户逐步解决问题。-保证回答真实可靠,基于提供的引用。提供的引用:-[^1]:在pom.xml中添加依赖,但主要是针对JDK的maven-compiler-plugin。-[^2]:pom.xml的基本结构,括groupId,artifactId,version等。-[^3]:使用maven-assembly-plugin打包依赖jar。-[^4]:使用spring-boot-maven-plugin打包依赖。用户的需求是打包含依赖库,所以引用[^3]和[^4]最相关。[^3]描述了使用maven-assembly-plugin,[^4]描述了使用spring-boot-maven-plugin(如果项目是SpringBoot)。步骤:1.**理解用户需求**:用户想在IDEA中使用Maven创建一个可执行的JAR文件,含所有依赖库。2.**关键方法**:-使用Maven的插件:如maven-assembly-plugin或maven-shade-plugin。-对于SpringBoot项目,使用spring-boot-maven-plugin。3.**基于引用**:-引用[^3]:配置maven-assembly-plugin来打包依赖。-引用[^4]:配置spring-boot-maven-plugin。4.**回答结构**:-逐步指导:如何在IDEA中修改pom.xml,然后运行Maven命令。-括代码块展示pom.xml配置。5.**生成相关问题**:在最后添加相关问题。详细步骤:-**方法1:使用maven-assembly-plugin(通用方法)**-在pom.xml中添加插件配置。-指定主类(如果可执行)。-运行Maven命令:mvncleanpackage。-**方法2:使用spring-boot-maven-plugin(针对SpringBoot)**-类似配置。在IDEA中执行:-打开Maven工具窗口,运行生命周期命令。确保回答真实可靠:基于标准Maven实践和引用。最后,添加相关问题。回答大纲:1.**介绍**:简要解释问题。2.**方法一:使用maven-assembly-plugin**-步骤:编辑pom.xml,添加插件配置。-代码块展示。-如何运行:在IDEA中使用Maven。3.**方法二:使用spring-boot-maven-plugin(如果适用)**-类似步骤。4.**总结**:建议基于项目类型。5.**相关问题**:生成3-4个相关问题。引用标识:-在引用内容后添加[^n],如基于引用[^3]。完整回答:</think>### 在IntelliJ IDEA中使用Maven打包JAR文件含依赖库的步骤 在IntelliJ IDEA中,使用Maven打包项目,如果需要将所有依赖库(如外部JAR文件)一同打包进生成的JAR文件中,可以通过配置Maven插件实现。这样生成的"fat JAR"或"uber JAR"可以直接运行,无需额外指定依赖路径。以下是两种常用方法,基于您的需求,我会逐步指导您操作。所有步骤均在IDEA中完成,确保真实可靠。 #### 方法一:使用`maven-assembly-plugin`(通用方法,适用于所有项目) 这种方法通过Maven Assembly插件创建一个含所有依赖的可执行JAR文件。 1. **编辑`pom.xml`文件**: - 在IDEA中打开项目,找到`pom.xml`文件。 - 在`<build>`标签内添加以下插件配置。替换`com.example.MainClass`为您的实际主类全限定名(即含`main`方法的类)。 ```xml <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.8.1</version> <configuration> <source>1.8</source> <target>1.8</target> </configuration> </plugin> <plugin> <artifactId>maven-assembly-plugin</artifactId> <version>3.6.0</version> <configuration> <archive> <manifest> <mainClass>com.example.MainClass</mainClass> <!-- 替换为您的入口类 --> </manifest> </archive> <descriptorRefs> <descriptorRef>jar-with-dependencies</descriptorRef> <!-- 关键:含所有依赖 --> </descriptorRefs> </configuration> <executions> <execution> <id>make-assembly</id> <phase>package</phase> <!-- 绑定到package阶段 --> <goals> <goal>single</goal> </goals> </execution> </executions> </plugin> </plugins> </build> ``` 此配置确保了在运行`mvn package`自动生成含依赖的JAR文件[^3]。 2. **运行Maven打包命令**: - 在IDEA右侧工具栏打开"Maven"窗口(View > Tool Windows > Maven)。 - 展开项目生命周期,双击`package`目标。 - 或使用终端命令:`mvn clean package`。 - 打包完成后,在`target`目录下会生成两个JAR文件: - `your-artifact-1.0-SNAPSHOT.jar`(不含依赖)。 - `your-artifact-1.0-SNAPSHOT-jar-with-dependencies.jar`(含所有依赖,这是可执行的JAR)。 3. **验证JAR文件**: - 在终端运行:`java -jar target/your-artifact-1.0-SNAPSHOT-jar-with-dependencies.jar`。 - 确保无`ClassNotFoundException`错误,表示依赖已正确打包。 #### 方法二:使用`spring-boot-maven-plugin`(适用于Spring Boot项目) 如果您的项目基于Spring Boot,该插件简化了打包过程,并自动处理依赖。 1. **编辑`pom.xml`文件**: - 确保`<dependencies>`中已添加Spring Boot依赖。 - 在`<build>`标签内添加以下插件配置: ```xml <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <version>${spring-boot.version}</version> <!-- 替换为实际版本,如3.2.0 --> <configuration> <mainClass>com.example.DemoApplication</mainClass> <!-- 替换为Spring Boot入口类 --> <includeSystemScope>true</includeSystemScope> <!-- 含系统作用域的依赖 --> </configuration> <executions> <execution> <id>repackage</id> <goals> <goal>repackage</goal> <!-- 重新打包为可执行JAR --> </goals> </execution> </executions> </plugin> </plugins> </build> ``` 此配置会生成一个可直接运行的JAR文件,所有依赖已内嵌[^4]。 2. **运行打包命令**: - 在IDEA的Maven窗口中双击`package`目标。 - 生成的JAR位于`target`目录,文件名为`your-artifact-1.0-SNAPSHOT.jar`(直接含依赖)。 #### 注意事项 - **插件选择**: - 非Spring Boot项目优先用`maven-assembly-plugin`。 - Spring Boot项目用`spring-boot-maven-plugin`更高效。 - **IDEA中的依赖管理**:确保所有依赖已在`pom.xml`的`<dependencies>`中声明,IDEA会自动下载[^1]。 - **常见问题**: - 如果打包失败,检查`<mainClass>`是否正确。 - 依赖冲突使用`mvn dependency:tree`分析依赖树。 - **性能**:含依赖的JAR文件较大,但便于分发。对于微服务场景,建议结合Docker容器化[^2]。 通过以上步骤,您可以在IntelliJ IDEA中轻松生成含依赖的JAR文件。如果您提供更多项目细节(如是否为Spring Boot),我可以给出更精确的建议。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值