当前位置: 首页 > news >正文

maven如何打包你会吗?

1.新建一个maven项目,在main/java中建立Main类


public class Main {public static void main(String[] args) {System.out.println("hello java ...");}
}

 2.添加依赖,使其成为可执行包

 <build><plugins><!--打包成为可执行包--><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-jar-plugin</artifactId><version>3.3.0</version><configuration><archive><manifest><addClasspath>true</addClasspath><classpathPrefix>lib/</classpathPrefix><mainClass>cn.scl.Main</mainClass></manifest></archive></configuration></plugin></plugins></build>

 3.打包运行

 

 

 假如我加入其它架包了 ,又该如何打包,才能运行?

 <!--自己加入的架包--><dependencies><!-- https://mvnrepository.com/artifact/org.jsoup/jsoup --><dependency><groupId>org.jsoup</groupId><artifactId>jsoup</artifactId><version>1.16.1</version></dependency></dependencies>

有小伙伴就说了,我依旧像前边的那种方式来打包(结果肯定是不行的)。。。

那你只需加入下边这些代码,就可以了:

 <plugin><!--可将其他插件也加入打包,会生成lib目录--><!-- maven-dependency-plugin --><groupId>org.apache.maven.plugins</groupId><artifactId>maven-dependency-plugin</artifactId><version>3.6.0</version><executions><execution><id>copy-dependencies</id><phase>package</phase><goals><goal>copy-dependencies</goal></goals><configuration><outputDirectory>${project.build.directory}/lib</outputDirectory></configuration></execution></executions></plugin>

 代码都加完了主程序不得改进以下啊。。。


public class Main {public static void main(String[] args) {try {System.out.println(Jsoup.connect("http://www.baidu.com").get().title());} catch (Exception e) {e.printStackTrace();}System.out.println("hello java ...");}
}

现在你再试一下打包。。。

细心的小伙伴就发现了,这里多了一个lib目录。。

 那就有小伙伴有疑问了,我不想要lib目录行不行:答案是当然可以

那你只需要修改一点代码就行:(将上边我们写的哪些代码注释掉,换上新的插件即可

<build><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-shade-plugin</artifactId><version>3.5.0</version><executions><execution><phase>package</phase><goals><goal>shade</goal></goals><configuration><transformers><transformerimplementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer"><mainClass>cn.scl.Main</mainClass></transformer></transformers></configuration></execution></executions></plugin><!--            <plugin>--><!--                &lt;!&ndash;可将其他插件也加入打包,会生成lib目录&ndash;&gt;--><!--                &lt;!&ndash; maven-dependency-plugin &ndash;&gt;--><!--                <groupId>org.apache.maven.plugins</groupId>--><!--                <artifactId>maven-dependency-plugin</artifactId>--><!--                <version>3.6.0</version>--><!--                <executions>--><!--                    <execution>--><!--                        <id>copy-dependencies</id>--><!--                        <phase>package</phase>--><!--                        <goals>--><!--                            <goal>copy-dependencies</goal>--><!--                        </goals>--><!--                        <configuration>--><!--                            <outputDirectory>${project.build.directory}/lib</outputDirectory>--><!--                        </configuration>--><!--                    </execution>--><!--                </executions>--><!--            </plugin>--><!--            &lt;!&ndash;打包成为可执行包&ndash;&gt;--><!--            <plugin>--><!--                <groupId>org.apache.maven.plugins</groupId>--><!--                <artifactId>maven-jar-plugin</artifactId>--><!--                <version>3.3.0</version>--><!--                <configuration>--><!--                    <archive>--><!--                        <manifest>--><!--                            <addClasspath>true</addClasspath>--><!--                            <classpathPrefix>lib/</classpathPrefix>--><!--                            <mainClass>cn.scl.Main</mainClass>--><!--                        </manifest>--><!--                    </archive>--><!--                </configuration>--><!--            </plugin>--></plugins></build>

你再打包你会发现。。。lib目录消失了新增了一个jar文件。我们实验一下:输入cmd....

 

 到这里就结束了,maven的实用打包方式就讲解完了。。。

完整程序:xml文件

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>org.example</groupId><artifactId>m12</artifactId><version>1.0-SNAPSHOT</version><properties><maven.compiler.source>17</maven.compiler.source><maven.compiler.target>17</maven.compiler.target><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding></properties><!--自己加入的架包--><dependencies><!-- https://mvnrepository.com/artifact/org.jsoup/jsoup --><dependency><groupId>org.jsoup</groupId><artifactId>jsoup</artifactId><version>1.16.1</version></dependency></dependencies><build><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-shade-plugin</artifactId><version>3.5.0</version><executions><execution><phase>package</phase><goals><goal>shade</goal></goals><configuration><transformers><transformerimplementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer"><mainClass>cn.scl.Main</mainClass></transformer></transformers></configuration></execution></executions></plugin><!--            <plugin>--><!--                &lt;!&ndash;可将其他插件也加入打包,会生成lib目录&ndash;&gt;--><!--                &lt;!&ndash; maven-dependency-plugin &ndash;&gt;--><!--                <groupId>org.apache.maven.plugins</groupId>--><!--                <artifactId>maven-dependency-plugin</artifactId>--><!--                <version>3.6.0</version>--><!--                <executions>--><!--                    <execution>--><!--                        <id>copy-dependencies</id>--><!--                        <phase>package</phase>--><!--                        <goals>--><!--                            <goal>copy-dependencies</goal>--><!--                        </goals>--><!--                        <configuration>--><!--                            <outputDirectory>${project.build.directory}/lib</outputDirectory>--><!--                        </configuration>--><!--                    </execution>--><!--                </executions>--><!--            </plugin>--><!--            &lt;!&ndash;打包成为可执行包&ndash;&gt;--><!--            <plugin>--><!--                <groupId>org.apache.maven.plugins</groupId>--><!--                <artifactId>maven-jar-plugin</artifactId>--><!--                <version>3.3.0</version>--><!--                <configuration>--><!--                    <archive>--><!--                        <manifest>--><!--                            <addClasspath>true</addClasspath>--><!--                            <classpathPrefix>lib/</classpathPrefix>--><!--                            <mainClass>cn.scl.Main</mainClass>--><!--                        </manifest>--><!--                    </archive>--><!--                </configuration>--><!--            </plugin>--></plugins></build></project>

Java文件:

/** Copyright (c) 2020, 2023,  All rights reserved.**/
package cn.scl;import org.jsoup.Jsoup;/*** <p>Project: m12 - Main</p>* <p>Powered by scl On 2023-08-01 20:21:29</p>* <p>描述:<p>** @author scl [1846080280@qq.com]* @version 1.0* @since 17*/
public class Main {public static void main(String[] args) {try {System.out.println(Jsoup.connect("http://www.baidu.com").get().title());} catch (Exception e) {e.printStackTrace();}System.out.println("hello java ...");}
}

相关文章:

maven如何打包你会吗?

1.新建一个maven项目&#xff0c;在main/java中建立Main类 public class Main {public static void main(String[] args) {System.out.println("hello java ...");} } 2.添加依赖&#xff0c;使其成为可执行包 <build><plugins><!--打包成为可执行包-…...

idea 控制台 打印 Tomcat日志Tomcat Catalina Log控制台乱码问题

修改tomcat的日志配置文件 conf一>logging.properties 修改【1catalina.org.apache.juli.AsyncFileHandler.encoding】的值为gbk 1catalina.org.apache.juli.AsyncFileHandler.level FINE 1catalina.org.apache.juli.AsyncFileHandler.directory ${catalina.base}/logs 1…...

python我的世界

我的世界不知道大家有没有玩过&#xff0c;今天博主用python的Ursina库复刻了我的世界给大家分享 安装Ursina pip install ursina 导入Ursina from ursina import * from ursina.prefabs.first_person_controller import FirstPersonController 创建app app Ursina() 创建Voxe…...

SpringBoot+vue 大文件分片下载

学习链接 SpringBootvue文件上传&下载&预览&大文件分片上传&文件上传进度 Blob & File & FileReader & ArrayBuffer VueSpringBoot实现文件的分片下载 video标签学习 & xgplayer视频播放器分段播放mp4&#xff08;Range请求交互过程可以参…...

scanf函数读取数据 清空缓冲区

scanf函数读取数据&清空缓冲区 scanf 从输入缓冲区读取数据数据的接收数据存入缓冲区scanf 中%d读取数据scanf中%c读取数据 清空输入缓冲区例子用getchar()吸收回车练习 scanf 从输入缓冲区读取数据 首先&#xff0c;要清楚的是&#xff0c;scanf在读取数据的时候&#xff…...

js 文件常用转换

获取上传文件的arrayBuffer&#xff1a;var u8arr await file.arrayBuffer() 通过arrayBuffer转换成Buffer&#xff1a;Buffer.from(u8arr) 1. Blob、File → Base64 function fileToDataURL(file) {let reader new FileReader();reader.readAsDataURL(file);reader.onload…...

基于Open3D的点云处理15-特征点

Intrinsic shape signatures (ISS) 参考 ISS关键点: 基本原理是避免在沿主要方向表现出类似分布的点上检测关键点&#xff0c;在这些点上无法建立可重复的规范参考框架&#xff0c;因此后续描述阶段很难变得有效。在剩余点中&#xff0c;显着性由最小特征值的大小决定,以便仅包…...

算法刷题Day 58 每日温度+下一个更大元素I

Day 58 单调栈 739. 每日温度 class Solution { public:vector<int> dailyTemperatures(vector<int>& temperatures) {vector<int> rst(temperatures.size());vector<int> decsStk; // 单调递减栈for (int i 0; i < temperatures.size(); i)…...

认识 spring AOP (面向切面编程) - springboot

前言 本篇介绍什么是spring AOP, AOP的优点&#xff0c;使用场景&#xff0c;spring AOP的组成&#xff0c;简单实现AOP 并 了解它的通知&#xff1b;如有错误&#xff0c;请在评论区指正&#xff0c;让我们一起交流&#xff0c;共同进步&#xff01; 文章目录 前言1. 什么是s…...

将css文件中的px转化为rem

pxToRem.js /*** 使用方式&#xff1a;* 与引入的文件放在同一目录下进行引用配置&#xff0c;执行:node &#xff08;定义的文件&#xff09;*/ const fs require(fs) const path require(path) /*** entry&#xff1a;入口文件路径 type:Strng* pxtopx&#xff1a;以倍数转…...

JNI之Java实现远程打印

打印机是最常见的办公设备了。一般情况下如果需要实现打印&#xff0c;可通过前端print.js包来完成。但是&#xff0c;如果要实现智能办公打印&#xff0c;就可以使用JNI技术、封装接口、远程调用实现完成。 导包 jacob&#xff1a;Java COM Bridge <dependency><g…...

YOLOv5基础知识入门(2)— YOLOv5核心基础知识讲解

前言&#xff1a;Hello大家好&#xff0c;我是小哥谈。YOLOV4出现之后不久&#xff0c;YOLOv5横空出世。YOLOv5在YOLOv4算法的基础上做了进一步的改进&#xff0c;使检测性能得到更进一步的提升。YOLOv5算法作为目前工业界使用的最普遍的检测算法&#xff0c;存在着很多可以学习…...

免费的scrum敏捷开发管理工具

Scrum中非常强调公开、透明、直接有效的沟通&#xff0c;这也是“可视化的管理工具”在敏捷开发中如此重要的原因之一。通过“可视化的管理工具”让所有人直观的看到需求&#xff0c;故事&#xff0c;任务之间的流转状态&#xff0c;可以使团队成员更加快速适应敏捷开发流程。 …...

Hive创建外部表详细步骤

① 在hive中执行HDFS命令&#xff1a;创建/data目录 hive命令终端输入&#xff1a; hive> dfs -mkdir -p /data; 或者在linux命令终端输入&#xff1a; hdfs dfs -mkdir -p /data; ② 在hive中执行HDFS命令&#xff1a;上传/emp.txt至HDFS的data目录下&#xff0c;并命名为…...

leetcode 452. 用最少数量的箭引爆气球

2023.8.2 本题思路先将二维数组points按照第一个维度排序&#xff0c; 然后初始化射箭数为1&#xff0c;因为题中提示说了最少有一个气球。 在遍历这些气球&#xff0c;看是否有重叠&#xff0c;如果没有重叠区域&#xff0c;射箭数&#xff1b;如果有重叠区域&#xff0c;更新…...

Pytorch Tutorial【Chapter 3. Simple Neural Network】

Pytorch Tutorial【Chapter 3. Simple Neural Network】 文章目录 Pytorch Tutorial【Chapter 3. Simple Neural Network】Chapter 3. Simple Neural Network3.1 Train Neural Network Procedure训练神经网络流程3.2 Build Neural Network Procedure 搭建神经网络3.3 Use Loss …...

2.虚拟机开启kali_linux

首先你应该搞一个虚拟机&#xff0c;搞虚拟机可以看一下这个 附录三 虚拟机的使用_Suyuoa的博客-CSDN博客 然后你需要搞一个 kali linux的镜像 Get Kali | Kali Linux 镜像下载好之后解压&#xff0c;你会得到一个文件夹包含下面这些文件 之后打开VMware&#xff0c;点击打开虚…...

【StyleGAN2论文精读CVPR_2020】Analyzing and Improving the Image Quality of StyleGAN

【StyleGAN2论文精读CVPR_2020】Analyzing and Improving the Image Quality of StyleGAN 一、前言Abstract1. Introduction2. Removing normalization artifacts2.1. Generator architecture revisited2.2. Instance normalization revisited 3. Image quality and generator …...

医学图像处理

医学图像处理 opencv批量分片高像素图像病理图像色彩特征提取病理图像细微特征提取自动数据标注分类场景下的医学图像分析分割场景下的医学图像分析检测场景下的医学图像分析 , i ] k 8 < * I opencv批量分片高像素图像 医学图像通常是大像素&#xff08;1920x1080&…...

PyCharm安装使用2023年教程,PyCharm与现流行所有编辑器对比。

与PyCharm类似的功能和特性的集成开发环境&#xff08;IDE&#xff09;和代码编辑器有以下几种&#xff1a; Visual Studio Code&#xff08;VS Code&#xff09;&#xff1a;由Microsoft开发&#xff0c;VS Code是一个高度可定制和可扩展的代码编辑器。它支持多种编程语言&am…...

ARM内存拷贝指令CPYFPT/CPYFMT/CPYFET详解与优化

1. ARM内存拷贝指令概述在现代计算机体系结构中&#xff0c;内存拷贝是最基础也是最频繁的操作之一。传统的内存拷贝通常通过软件循环实现&#xff0c;这种方式简单但效率不高。ARM架构从v8.7-A开始引入了一组专门的内存拷贝指令——CPYFPT、CPYFMT和CPYFET&#xff0c;它们构成…...

Scroll Reverser:为什么你的Mac需要这款滚动方向控制神器?

Scroll Reverser&#xff1a;为什么你的Mac需要这款滚动方向控制神器&#xff1f; 【免费下载链接】Scroll-Reverser Per-device scrolling prefs on macOS. 项目地址: https://gitcode.com/gh_mirrors/sc/Scroll-Reverser 作为一名设计师&#xff0c;李华每天在MacBook…...

RISC-V开发板VisionFive 2 UEFI固件移植与启动实战指南

1. 项目概述&#xff1a;当RISC-V单板机拥抱UEFI 对于玩惯了x86平台或者树莓派的开发者来说&#xff0c;给一块单板计算机&#xff08;SBC&#xff09;刷写固件、配置启动项&#xff0c;可能已经轻车熟路。但当你把目光投向RISC-V架构&#xff0c;特别是像赛昉科技的VisionFiv…...

推荐靠谱多模型聚合平台生产厂家,技术扎实服务贴心有保障

随着AI大模型应用场景不断拓展&#xff0c;企业对多模型聚合平台的需求持续攀升。行业报告显示&#xff0c;近一年国内企业采购多模型聚合服务的订单量同比增长超60%&#xff0c;如何选择技术扎实、服务贴心的平台生产厂家&#xff0c;成为企业数字化转型的关键决策。一、技术实…...

Obsidian Quiz Generator:用AI与间隔重复打造动态知识库

1. 项目概述&#xff1a;当笔记遇上主动回忆如果你和我一样&#xff0c;是 Obsidian 的用户&#xff0c;并且对知识管理、学习效率有追求&#xff0c;那么你一定遇到过这个困境&#xff1a;笔记越记越多&#xff0c;知识库越来越庞大&#xff0c;但真正能“记住”并“调用”的知…...

现代Web全栈技术栈实践:从Next.js到PostgreSQL的标准化开发方案

1. 项目概述&#xff1a;一个现代Web应用的技术栈实践最近在技术社区里看到一个挺有意思的项目&#xff0c;叫stack-wuh/x.wuh.site。光看这个名字&#xff0c;可能有点摸不着头脑&#xff0c;但拆解一下就能明白&#xff0c;这本质上是一个关于“技术栈”的实践项目。stack-wu…...

Godot引擎集成Box2D物理插件:提升2D游戏物理模拟精度与稳定性

1. 项目概述&#xff1a;当Godot遇上Box2D如果你是一个用过Godot引擎&#xff0c;特别是做过2D物理游戏的开发者&#xff0c;大概率对它的默认物理引擎有过又爱又恨的复杂感情。Godot内置的物理引擎在处理一些简单碰撞、刚体运动时非常方便&#xff0c;但一旦项目需求变得复杂—…...

8051嵌入式开发中的数据覆盖与代码分页技术详解

1. A51汇编中的数据覆盖与代码分页技术解析在8051嵌入式开发中&#xff0c;内存资源往往捉襟见肘。我曾在一个烟雾报警器项目中&#xff0c;主控芯片只有128字节RAM和4KB Flash&#xff0c;却要实现复杂的烟雾浓度算法和无线通信协议。正是通过数据覆盖(Data Overlaying)和代码…...

多变量分数阶系统的频域分析与设计【附程序】

✨ 长期致力于多变量系统、频率域、分数阶PID控制、鲁棒控制、参数拟合、参数优化、工具箱、框图法研究工作&#xff0c;擅长数据搜集与处理、建模仿真、程序编写、仿真设计。 ✅ 专业定制毕设、代码 ✅ 如需沟通交流&#xff0c;点击《获取方式》 &#xff08;1&#xff09;基…...

宝塔面板如何定期清理日志垃圾_设置计划任务自动清理.txt

...