VIP创新项目1课程总结2021-2022学年第1学期(3)

简介: 文章目录VIP创新项目1课程总结2021-2022学年第1学期1. Java基础1.1 Java代码是如何执行的1.2Java打包案例1.带package的jar包——直接输出hello

2.5Maven pom.xml介绍

常用标签:


modelVersion maven的模型版本,跟随maven定义,一般不能修改。


groupId

项目的组织,一般是顶级域名名称+公司或者组织名称,如alibaba的项目组织为com.alibaba,如果你们公司的域名为www.abc.com,那你们的项目组织最好就以com.abc命名。


artifactId

项目的名称,也是项目之间引进依赖的重要标识。像alibaba有个dubbo项目,dubbo项目可能又关联了许多子项目,所以artifactId就会定义有dubbo、dubbo-config这样的工程。


version

项目的版本,项目迭代开发,可能经历许多个版本,靠这个定义,默认是打包的组成部分,如dubbo-2.8.4.jar。另外,版本有两个概念,0.0.1-SNAPSHOT这样的是快照版本,0.0.1-RELEASE或者不带SNAPSHOT的就是RELEASE版本。


packaging 打包类型,有这几种类型:pom, jar, maven-plugin, ejb, war, ear, rar,

par,默认不填就是jar包,一般常用的是pom、jar、war。


properties

配置公共属性,如spring-web,spring-aop你要依赖这两个,它们肯定是同一个版本的如4.5.0,可以把版本号放在属性上统一管理,也方便维护。

dependecies

配置工程的依赖信息


builds

用来管理执行maven声明周期的,包括plugins,maven-dependency-plugin,resources

2.6Maven 工程案例-生成二维码

1.基于IDEA或是Eclipse构建Maven工程

设定GAV坐标:

edu.hncj

VIP01

1.0-SNAPSHOT


添加pom依赖

在工程下的pom.xml中,新增如下标签:

<dependencies>
    <!-- 定义二维码生成的库-->
        <dependency>
            <groupId>com.google.zxing</groupId>
            <artifactId>core</artifactId>
            <version>3.3.1</version>
        </dependency>
        <dependency>
            <groupId>com.google.zxing</groupId>
            <artifactId>javase</artifactId>
            <version>3.3.1</version>
        </dependency>
</dependencies>
<build>
<plugins>
      <!-- 定义maven的打包编译插件 -->
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>3.6.0</version>
        <configuration>
          <source>1.8</source>
          <target>1.8</target>
          <encoding>UTF-8</encoding>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-assembly-plugin</artifactId>
        <version>3.1.1</version>
        <configuration>
<!--          <archive>-->
<!--            <manifest>-->
<!--              <mainClass>org.example.HttpClientTest</mainClass>-->
<!--            </manifest>-->
<!--          </archive>-->
          <descriptorRefs>
            <descriptorRef>jar-with-dependencies</descriptorRef>
          </descriptorRefs>
          <encoding>UTF-8</encoding>
        </configuration>
        <executions>
          <execution>
            <id>make-assembly</id>
            <phase>package</phase>
            <goals>
              <goal>single</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
    </plugins>
</build>


编写Java代码

edu.hncj.VIP01包下,创建QRCodeGenerator类,内容如下:

package edu.hncj.VIP01;
import java.io.ByteArrayOutputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.util.HashMap;
import java.util.Map;
import com.google.zxing.BarcodeFormat;
import com.google.zxing.EncodeHintType;
import com.google.zxing.MultiFormatWriter;
import com.google.zxing.WriterException;
import com.google.zxing.client.j2se.MatrixToImageWriter;
import com.google.zxing.common.BitMatrix;
import com.google.zxing.qrcode.decoder.ErrorCorrectionLevel;
public class QRCodeGenerator {
     public static byte[] createQRCode(int width, int height, String content) throws WriterException, IOException {
// 二维码基本参数设置
        Map<EncodeHintType, Object> hints = new HashMap<EncodeHintType, Object>();
        hints.put(EncodeHintType.CHARACTER_SET, "utf-8");// 设置编码字符集utf-8
        hints.put(EncodeHintType.ERROR_CORRECTION, ErrorCorrectionLevel.M);// 设置纠错等级L/M/Q/H,纠错等级越高越不易识别,当前设置等级为最高等级H
        hints.put(EncodeHintType.MARGIN, 0);// 可设置范围为0-10,但仅四个变化0 1(2) 3(4 5 6) 7(8 9 10)
// 生成图片类型为QRCode
        BarcodeFormat format = BarcodeFormat.QR_CODE;
// 创建位矩阵对象
        BitMatrix bitMatrix = new MultiFormatWriter().encode(content, format, width, height, hints);
// 设置位矩阵转图片的参数
//        MatrixToImageConfig config = new MatrixToImageConfig(Color.black.getRGB(), Color.white.getRGB());
// 位矩阵对象转流对象
        ByteArrayOutputStream os = new ByteArrayOutputStream();
        MatrixToImageWriter.writeToStream(bitMatrix, "png", os);
        return os.toByteArray();
    }
    public static void main(String[] args) throws WriterException, IOException {
        byte[] b = createQRCode(100, 100, "遇见最好的自己!");
        OutputStream os = new FileOutputStream("E:\\bestme.png");
        os.write(b);
        os.close();
    }
}

右键执行,即可运行成功,同时在E盘根目录下,生成bestme.png文件,用微信扫描二维码后,可看到信息 “遇见最好的自己!”


打包生成jar,并且执行

双击maven下的package,会在target生成jar包

进入到G:\ideaproject\VIP01\targe目录下,输入CMD,然后再命令行窗口输入

G:\ideaproject\VIP01\target>java -cp VIP01-1.0-SNAPSHOT-jar-with-dependencies.jar edu.hncj.VIP01.QRCodeGe

执行代码,会在E盘根目录下生成bestme.png图片

3.Git专题

3.1Git简介

Git是目前世界上最先进的分布式版本控制系统(没有之一)。

Git有什么特点?简单来说就是:高端大气上档次!由linux之父Linus编写。

3.2工作区、暂存区、本地仓库、远程仓库

Git有

workspace: 工作区

index/Stage: 暂存区

Repository: 本地仓库

Remote: 远程仓库

四个区域,具体作业如下图:

四个区域,具体作业如下图:


平时我们写的代码都是在工作区,执行add命令后就是提交到了暂存区,再执行commit命令后就把代码提交到了版本库了,最后再执行push命令把本地代码提交到远程版本库。下图也基本是这个意思。



3.3Git安装

到Git官网下载,网站地址:https://git-scm.com/downloads

下一步安装即可

安装完成,配置用户名和邮箱

$ git config --global user.name "Your Name"
$ git config --global user.email "email@example.com"

查看用户名和邮箱地址

$ git config user.name
$ git config user.email

修改局部用户名和邮箱地址:

$ cd ~/you project                       
$ git config user.name  "username"      
$ git config user.email "email"   
相关文章
|
5月前
|
存储 JavaScript 前端开发
程序与技术分享:C++程序设计实验考试准备资料(2019级秋学期)
程序与技术分享:C++程序设计实验考试准备资料(2019级秋学期)
|
6月前
|
SQL 安全 调度
网安预习课程笔记(九到十节)
本文是一篇关于渗透测试案例的分享,案例主要包括弱口令、SQL注入、内网渗透等多个环节,详细描述了渗透测试工作者如何通过一系列步骤获取不同服务器和系统的管理员权限。提到了一些关键的IP地址、数据库和服务器的发现,以及利用这些漏洞如何获取的权限。文章最后讨论了漏洞报告的组成部分,强调了报告的规范性和清晰度对于有效沟通和解决问题的重要性。 请注意,由于原始内容包含多个图片和链接,摘要中并未包含这些元素。
66 11
|
6月前
|
运维 监控 安全
网络安全预习课程笔记(四到八节)
网络安全领域的岗位多样化,包括应急响应、代码审计、安全研究、工具编写、报告撰写、渗透测试和驻场服务等。其中,应急响应处理系统故障和安全事件,代码审计涉及源码漏洞查找,安全研究侧重漏洞挖掘,工具编写则要开发自动化工具,报告撰写需要良好的写作能力。渗透测试涵盖Web漏洞和内网渗透。岗位选择受公司、部门和领导的影响。此外,还可以参与CTF比赛或兼职安全事件挖掘。了解不同岗位职责和技能需求,如安全运维工程师需要熟悉Web安全技术、系统加固、安全产品和日志分析等。同时,渗透测试包括信息收集、威胁建模、漏洞分析、攻击实施和报告撰写等步骤。学习网络安全相关术语,如漏洞、木马、后门等,有助于深入理解和学习。
|
机器学习/深度学习 人工智能 安全
IT专业报考指南:选择正确的学校和课程
随着高考的技术,男怕入错行,女怕嫁错郎,专业的选择也是至关重要的,当准备报考IT专业时,选择适合自己的学校和课程是至关重要的一步。随着信息技术的快速发展和应用范围的不断扩大,IT行业的就业前景变得更加广阔。然而,在众多学校和课程中做出明智的选择并不容易。这就是为什么一个全面的报考指南对于帮助你确定正确的学校和课程至关重要。
89 0
|
前端开发 Java 编译器
VIP创新项目1课程总结2021-2022学年第1学期(1)
文章目录 VIP创新项目1课程总结2021-2022学年第1学期 1. Java基础 1.1 Java代码是如何执行的 1.2Java打包案例 1.带package的jar包——直接输出hello
VIP创新项目1课程总结2021-2022学年第1学期(1)
|
存储 SQL 分布式计算
Hadoop大数据技术课程总结2021-2022学年第1学期(上)
文章目录 Hadoop大数据技术课程总结 1.大数据概述 1.1大数据时代的4V 1.2大数据时代的三次浪潮
Hadoop大数据技术课程总结2021-2022学年第1学期(上)
|
SQL 分布式计算 资源调度
Hadoop大数据技术课程总结2021-2022学年第1学期(中)
文章目录 Hadoop大数据技术课程总结 1.大数据概述 1.1大数据时代的4V 1.2大数据时代的三次浪潮
Hadoop大数据技术课程总结2021-2022学年第1学期(中)
|
SQL 存储 分布式计算
Hadoop大数据技术课程总结2021-2022学年第1学期(下)
文章目录 Hadoop大数据技术课程总结 1.大数据概述 1.1大数据时代的4V 1.2大数据时代的三次浪潮
Hadoop大数据技术课程总结2021-2022学年第1学期(下)
|
运维 前端开发 小程序
自己学校里的实训做笔记
自己学校里的实训做笔记
自己学校里的实训做笔记
|
网络安全 Windows
千峰课程网安笔记(1)
1如何使两台虚拟机在同一局域网下互Ping以及关于单方面ping通的解决办法
113 0
千峰课程网安笔记(1)
下一篇
无影云桌面