一.什么是项目构建
我们用比如像java这样的高级语言编写好了程序是不是能立马运行起来?当然是不能的。因为java编写出来的是源码,源码是不能直接运行的。要先进行编译,比如编译成class文件。编译成class文件就能直接运行了么?也不是的。因为计算机还要知道你程序的入口比如main方法在哪里。然后你的程序要依赖哪些文件等。但这些东西可能没有集中在一个地方,这样的话我们使用很不方便。所以我们会把这些文件都打在一个包里面。这样方便我们在后面对程序进行运行部署。所以总结来说构建就是源码-编译-打包。
二.构建一个java项目
我们现在先尝试用最原始的方式去构建一个java项目。首先构建的是java项目我们就要先安装jdk。
安装jdk的步骤
1.注册一个oracle账号
2.去 oracle 官网Java Downloads | Oracle 下载自己所需的jdk
3.安装jdk 安装就不多说了记得配置环境变量
安装完jdk以后我们就可以开始编写java代码了。
直接使用文本编辑器写一个HelloWorld的java文件作为我们的源码内容如下
public class HelloWorld {
public static void main(String[] args) {
System.out.println("hello world!");
}
}
写好源码以后我们要对源码进行编译。利用javac 工具将源码编译成class文件。执行命令
javac HelloWorld.java
编译完会生成HelloWorld.class 文件 然后使用java命令运行程序输出hello world
这是编译单个class文件。如果我们的HelloWorld中有依赖其他class文件要怎么处理呢?
首先我们给我们的世界加一只狗狗.代码如下
public class HelloWorld {
public static void main(String[] args) {
System.out.println("hello world!");
Dog dog = new Dog();
dog.bark();
}
}
public class Dog {
public void bark() {
System.out.println("wang wang !");
}
}
javac HelloWorld.java 重新编译(这里会直接在当前目录找到依赖的Dog.java一起编译)
执行java HelloWorld命令输出结果(直接会查找当前目录下的所有class文件)
但这只是一两个文件,实际项目中的文件可能是成千上万个。所以我们需要把这些文件打成一个包,方便后面传输或者部署。java 为我们提供了一个打包工具 jar 我们用它来打包
jar cvf HelloWorld.jar *.class
使用jar 命令打包当前目录下的所有class文件生成 HelloWorld.jar 包
用java 命令运行jar包
报错没有主清单属性,这是因为未在 MANIFEST.MF 指定Main-Class。
使用解压工具打开jar 包修改MANIFEST.MF文件添加 Main-Class 重新运行
同时如果有依赖的jar包也可以在MANIFEST.MF指定Class-Path
三.利用maven进行java项目构建
由上面可知,如果仅依靠java自己的工具,编译打包什么的有时还挺费劲的。有没有一个工具只要通过修改配置文件就可以完成各种构建步骤呢。我们可以尝试一下构建工具maven
1. 下载安装集成开发环境 idea
官网地址IntelliJ IDEA: The Capable & Ergonomic Java IDE by JetBrains 直接下载社区版即可
2.下载安装maven
3.配置maven环境变量
4.idea 新建一个maven工程
5. maven项目目录结构
6. pom.xml 管理jar包依赖
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
7.引用maven插件
执行 mvn clean package 命令开始构建
构建完成输出如下
target目录下会生成一个可执行的jar包
查看 my-test-0.0.1-SNAPSHOT.jar jar包
我们可以看到里面也有一个MANIFEST.MF文件描绘我们的打包信息
四.项目部署
对于上面我们生成的可执行jar包,我们要部署到服务器上。
我们用VMware安装虚拟机来模拟服务器环境。
1.进入虚拟机
2.在虚拟机上安装好jdk
3.上传上面生成的jar包到指定目录下并运行jar包
上面的是简单描述下手动的构建部署流程,在实际生产中一般都是实现CI ,CD。
实现CI CD 的常见方式比如有gitlab+maven+jenkins+k8s。
CICD的实现下回分解。