8软件工程环境

软件工程环境

第三方库

概念

⚡️ 某个编程语言在安装好开发环境之后,默认会提供API。除此之外,还可以有第三方提供代码库(我们称之为第三方库,一般为jar格式),我们可以通过第三方库提供的API来使用某些已有的功能,而不需要自己来实现;

jar文件什么?

⚡️ jar文件就是第三方库,是一个压缩文件,可以使用解压软件打开,里面包含的都是class文件,即编译好的,可在JVM上运行的字节码;

⚡️ 一个Java程序基于某个第三方库来实现某些功能时,改第三方库也成为该Java程序的依赖包;

第三方库就是API吗?

⚡️ API:即application programming interface,应用程序接口;

⚡️ 第三方库就是一个提供API的仓库;

如何使用第三方库?

⚡️ 在Java中,使用第三方库,主要体现在开发Java代码时引入依赖(依赖就是开发时所要用到的资源或工具支持);

1、在cmd中使用第三方库

⚡️ 我们尝试使用依赖将代码输出打印的字体变为彩色;

⚡️ 首先使用普通文本编辑器编写下面的Java代码后保存在本地:

//import引入依赖
import org.fusesource.jansi.AnsiConsole;
import static org.fusesource.jansi.Ansi.Color.*;
import static org.fusesource.jansi.Ansi.ansi;

public class Main {
    public static void main(String[] args) {
        AnsiConsole.systemInstall();
        int lineNumber = 0;
        System.out.print( ansi().fg(MAGENTA).a(++lineNumber));
        System.out.println( ansi().fg(CYAN).a("面试官:").fg(RED).a("你都会什么编程语言?") );
        System.out.print( ansi().fg(MAGENTA).a(++lineNumber));
        System.out.println( ansi().fg(BLUE).a("我:   ").fg(GREEN).a("精通C、C++、Java、HTML、JavaScript等语言,的单词拼写") );
        System.out.print( ansi().fg(MAGENTA).a(++lineNumber));
        System.out.println( ansi().fg(CYAN).a("面试官:").fg(RED).a("就这?会什么系统嘛?") );
        System.out.print( ansi().fg(MAGENTA).a(++lineNumber));
        System.out.println( ansi().fg(BLUE).a("我:   ").fg(GREEN).a("精通Windows、Mac、Linux系统,的关机") );
        AnsiConsole.systemUninstall();
   }
}

⚡️ 将上述代码保存后,进入cmd进行编译;

在这里插入图片描述

⚡️ 编译发生错误;

⚡️ 根据提示信息,因为找不到依赖包,所以发生错误,这个时候我们就要引入依赖包:

javac -cp "D:\CodeResource\Maven_repository\Repository\Maven\org\fusesource\jansi\jansi\2.3.3" Main.java

⚡️ 运行结果如下

在这里插入图片描述

⚡️ 看提示信息好像是编码格式出现错误,再输入以下代码:

java -cp "D:\CodeResource\Maven_repository\Repository\Maven\org\fusesource\jansi\jansi\2.3.3" -encoding utf-8 Main.java

⚡️ 运行后会在Main.java所在目录里生成一个Main.class文件;

在这里插入图片描述

⚡️ 再输入下面的命令:

java -cp ".;D:\CodeResource\Maven_repository\Repository\Maven\org\fusesource\jansi\jansi\2.3.3" Main
#.;表示当前路径

⚡️ 输出结果为:

在这里插入图片描述

构建工具

背景

⚡️ 从上述操作可以看出,我们仅仅是想输出彩色字体,操作就这么复杂,如果想做一些更花里胡哨的内容,那工作量还不直接把人给整emo了啊;所以为了让编程变得更加方便,便有了项目构建工具;

常见的项目构建工具

⚡️ 对于Java项目来说,使用比较多的构建工具主要有三种:

☁️ Ant:比较老的一款构建工具,构建时需要自行制定编译路径、资源路径等,依赖包还是需要自行下载,目前主流的项目都不再使用;

☁️ Maven:采取“约定由于配置”的思想,约定好编译路径、资源路径等,依赖包可以从网络自行下载,Maven主要基于XML文件进行配置;目前Java服务端项目大多使用Maven来构建;

☁️ Gradle:和Maven功能非常类似,只是采取基于Groovy脚本语言的DSL语法进行配置,安卓开发几乎用的都是Gradle;

关于maven

⚡️ Maven是一个项目构建工具,创建的项目只要遵循Maven规范(称为Maven项目),即可使用Maven来 进行管理:编译,打包等。

maven安装

⚡️ 下载解压,下载地址为:版本3.6.3;

⚡️ 下载后解压到任意文件夹,解压后打开结构如下:

在这里插入图片描述

配置环境变量

⚡️ 右键”此电脑“,点击”属性“,并打开”高级系统设置“中的”环境变量“,添加Maven环境变量;

⚡️ 先定义Maven根路径变量 M2_HOME;

⚡️ 再在 Path 环境变量中,添加Maven工具bin目录为全局命令路径;

⚡️ 检测安装配置是否成功;

maven介绍

全局依赖管理

⚡️ maven项目中可以引入依赖包;

⚡️ 引入依赖包时,优先在本地maven仓库中搜索,搜索不到时,再去远程仓库中搜索;

本地仓库配置

⚡️ 找到maven根目录下的conf目录,找到setting.xml文件;

⚡️ 使用记事本工具打开;

⚡️ 找到下面代码:

在这里插入图片描述

⚡️ 将红色框里的代码添加到图中位置(路径要改);

⚡️ 这样的话我们本地仓库就配置好了,以后把下载的依赖包放入这个路径就可以了;

在IDEA中配置maven本地仓库

⚡️ 打开IDEA,随便打开一个项目;

⚡️ 点击文件-设置–新项目设置-新项目的设置

⚡️ 点击构建、执行、部署-构建工具-maven

⚡️ 在右侧界面找到maven主路径,改为你下载的maven工具的存放路径;

⚡️ 用户设置文件和本地仓库当然也要重写,用户设置文件路径改为上面修改后的setting.xml文件的路径,本地仓库路径就是上面本地仓库的路径;

在这里插入图片描述

创建maven项目

⚡️ 打开IDEA,点击新建项目,选择maven(IDEA不同版本布局不同);

在这里插入图片描述

⚡️ 点击下一步

在这里插入图片描述

☁️ 名称和位置可以任意设置;

☁️ 组ID:组织id、组织名,一般使用公司的域名,如com.alibaba;同时按规范,自己写的java都在这样的包下;

☁️ 工件ID:产品id、产品名,项目即产品,所以一般使用本项目名,多个英文之间用-间隔;

☁️ 版本:产品的版本号,本项目可能有多个版本提供给别人使用;

⚡️ 完后创建后,看左侧目录结构;

在这里插入图片描述

☁️ main目录下的Java目录用来存放开发用的Java代码;

☁️ main目录下的resources目录用来存放开发用的配置文件;

☁️ ​test目录下的java目录用来存放单元测试Java代码;

☁️ 手动在test目录下创建一个resources目录,用来存放测试资源;

⚡️ 尝试创建一个Java类并进行编译,观察左侧目录结构变化;

☁️ 在src/main/resources目录下,创建一个配置文件(任意文件都行,以下为创建的 test.xml 文件);

☁️ 在 src/main/java 目录下,随便创建一个类,编写 main 方法运行后,会生成编译结构,如下图;

在这里插入图片描述

☁️ 目录target下的classes目录,为将我们写的Java类编译为class文件后存放的路径;

☁️ 同时该路径下又存放了我们刚才添加的xml文件;

maven项目配置

⚡️ 在我们上面构建maven项目中,有一个pom.xml文件,这个就是maven项目的配置文件,maven项目构建工具就是基于该配置文件来对maven项目进行管理的;

☁️ 该xml文件 的格式采取一种叫”项目对象模型“的概念(Project Object Model,简称POM),因此 Maven给这个文件取名为 pom.xml;

⚡️ 在IDEA中点击打开该xml文件;

⚡️ 在代码里找到<maven.compiler.source><maven.compiler.target>,将两个标签中的数字都改为1.8,1.8是我们使用的jdk的版本;

⚡️ 找到<dependencies>标签,把其中的内容改为下列代码(若没有该标签,直接将改代码复制粘贴到</project>上面);

<dependencies>
    <dependency>
        <groupId>org.fusesource.jansi</groupId>
        <artifactId>jansi</artifactId>
        <version>2.3.3</version>
    </dependency>
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>5.1.49</version>
    </dependency>
</dependencies>
maven的生命周期

⚡️ 在IDEA最右边的侧边栏中,点击maven,找到生命周期目录;

☁️ clean:用于删除target目录;

☁️ compile:编译开发代码和资源文件;

☁️ package:将整个项目打包;

☁️ deploy:将项目上传到私服仓库;

软件运行时的依赖资源

运行时的环境

⚡️ 对于Java程序来说,JRE就是必须的运行时环境;

☁️ JDK是Java程序开发需要的环境,JDK包含了JRE;

程序代码

⚡️ 对于Java程序来说,class文件就是运行时需要的程序代码;

外部资源

⚡️ 外部资源包括:数据库、文件资源等;

内部资源

⚡️ 对于Java程序来说,运行时所要用到的文件,除了class文件外,都属于内部资源;

日志

⚡️ 在生产环境中,如果没有日志文件,那几乎很难定位到程序出现的问题;

☁️ JDK是Java程序开发需要的环境,JDK包含了JRE;

程序代码

⚡️ 对于Java程序来说,class文件就是运行时需要的程序代码;

外部资源

⚡️ 外部资源包括:数据库、文件资源等;

内部资源

⚡️ 对于Java程序来说,运行时所要用到的文件,除了class文件外,都属于内部资源;

日志

⚡️ 在生产环境中,如果没有日志文件,那几乎很难定位到程序出现的问题;

  • 11
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 15
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

马孔多镇长

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值