Build 阶段工具 ¶
build 工具介绍 ¶
构建 Java 项目的工具一般有两种选择 Maven
和 Gradle
。
这里选择 Maven 作为项目的编译工具,需要确保配置好 Maven 仓库私服以及 JDK 编译版本。
需要注意的地方。
- maven 安装之前要先安装 jdk。
- maven 一定要安装在 jenkins 服务器上。
maven 介绍 ¶
Maven是一个项目管理和综合工具。Maven提供给开发人员构建一个完整的生命周期框架。 开发团队可以自动完成该项目的基础设施建设,Maven使用标准的目录结构和默认构建生命周期。 Apache的开源项目主要服务于JAVA平台的构建、依赖管理、项目管理。 Project Object Model,项目对象模型。通过xml格式保存的pom.xml文件。该文件用于管理:源代码、配置文件、开发者的信息和角色、问题追踪系统、组织信息、项目授权、项目的url、项目的依赖关系等等。该文件是由开发维护,我们运维人员可以不用去关心。
nexus 安装 ¶
https://download.sonatype.com/nexus/3/nexus-3.12.1-01-unix.tar.gz
tar -xf nexus-3.70.1-02-unix.tar.gz -C /usr/local/
cd /usr/local/
mv nexus-3.70.1-02 nexus
useradd nexus
chown -R nexus:nexus /usr/local/nexus
vim /usr/local/nexus/bin/nexus.vmoptions
--- 修改 jdk 版本配置---
INSTALL4J_JAVA_HOME_OVERRIDE=/usr/local/jdk1.8.0_421
---
chown -R nexus:nexus /usr/local/sonatype-work/
su - nexus
/usr/local/nexus/bin/nexus start 将nexus放至前台启动,再可用start放至后台启动 会启动 8081 web 端口
validate(验证): 验证项目正确,并且所有必要信息可用。
compile(编译): 编译项目源码
test(测试): 使用合适的单元测试框架测试编译后的源码。
package(打包): 源码编译之后,使用合适的格式(例如JAR格式)对编译后的源码进行打包。
integration-test(集成测试): 如果有需要,把包处理并部署到可以运行集成测试的环境中去。
verify(验证): 进行各种测试来验证包是否有效并且符合质量标准。
install(安装): 把包安装到本地仓库,使该包可以作为其他本地项目的依赖。
deploy(部署): 在集成或发布环境中完成,将最终软件包复制到远程存储库,以与其他开发人员和项目共享。
mvn clean (清除) : 清除上次编译的结果
mvn package -Dmaven.test.skip=true 跳过测试用例
cd hello-world
mvn package #会去maven的中央仓库去下载需要的依赖包和插件到.m2目录下
游览器访问 ¶
cat /usr/local/sonatype-work/nexus3/admin.password
配置代理仓库 ¶
配置代理仓库 - 修改为阿里云地址 http://maven.aliyun.com/nexus/content/groups/public |
---|
![]() |
![]() |
安装 java ¶
1. 下载 java ¶
cd /tmp
wget https://download.oracle.com/java/17/latest/jdk-17_linux-x64_bin.tar.gz
tar -zxvf jdk-17_linux-x64_bin.tar.gz
mv jdk-17.0.12/ /usr/local/jdk-17.0.12/
2. 配置 java 环境变量 ¶
=====================================================
配置文件添加下面两行内容:
export JAVA_HOME=/usr/local/jdk-17.0.12/
export PATH=$JAVA_HOME/bin:$PATH
=====================================================
source /etc/profile
java -version
安装 maven ¶
1. 下载 maven ¶
cd /tmp
wget https://mirrors.aliyun.com/apache/maven/maven-3/3.9.8/binaries/apache-maven-3.9.8-bin.tar.gz
tar -zxvf apache-maven-3.9.8-bin.tar.gz
mv apache-maven-3.9.8 /usr/local/maven
2. 配置 maven 环境变量 ¶
=====================================================
配置文件添加下面两行内容:
export PATH="$PATH:/usr/local/sonar-scanner/bin/:/usr/local/maven/bin"
=====================================================
source /etc/profile
mvn -version
测试编译打包 ¶
mvn package
maven配置 ¶
进入目录并备份配置 ¶
cd /usr/local/maven/conf/ && cp settings.xml setings
项目配置本地的 nexus 私服 ¶
# 158行
<?xml version="1.0" encoding="UTF-8"?>
<settings xmlns="http://maven.apache.org/SETTINGS/1.2.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.2.0 https://maven.apache.org/xsd/settings-1.2.0.xsd">
<mirrors>
<mirror>
<id>nexus-DevOps</id>
<mirrorOf>maven-public</mirrorOf>
<url>http://192.168.3.40:8081/repository/maven-public/</url>
</mirror>
</mirrors>
<profiles>
<profile>
<id>default</id>
<repositories>
<repository>
<id>public</id>
<url>http://192.168.3.40:8081/nexus/content/groups/public/</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
</repositories>
</profile>
</profiles>
<activeProfiles>
<activeProfile>default</activeProfile>
</activeProfiles>
</settings>
mirror 相当于一个拦截器,它会拦截 mave n对 remote repository 的相关请求,走该镜像进行 jar 包的获取。
重新打包 ¶
mvn clean && mvn package
maven 构建包类型 war 和 jar 区别 ¶
在 Maven 项目中,构建生成 war 或 jar 文件取决于项目的 pom.xml 配置以及项目的类型。
-
如果您的项目是一个 Web 项目(通常包含 web.xml 文件,并且依赖于 Web 相关的技术,如 Servlet、JSP 等),那么在构建时会默认生成 war 文件。您可以通过配置
war 来明确指定。 -
如果您的项目是一个普通的 Java 应用程序或者库项目,那么构建时会默认生成 jar 文件。同样可以通过配置
jar 来明确指定。
总之,构建生成哪种类型的文件取决于项目的性质和在 pom.xml 中对
在 Maven 项目中,编译生成的 target 目录下的 war(Web Application Archive)和 jar(Java Archive)文件主要有以下区别。
-
用途:
- war 文件主要用于部署 Web 应用程序到 Web 服务器(如 Tomcat)。
- jar 文件通常是一个可独立运行的 Java 应用程序或库,可以被其他 Java 项目引用。
-
内容结构:
-
war 文件包含了 Web 应用的所有组件,如 HTML、JSP 页面、Servlet 类、静态资源(CSS、JavaScript、图片等)、配置文件以及相关的依赖库。
-
jar 文件主要包含 Java 类文件、资源文件和项目所依赖的库。
-
-
运行方式:
-
war 文件需要部署到 Web 容器中才能运行。
-
jar 文件可以通过命令行使用 java -jar 命令直接运行(如果包含了主类和相关配置)。
-
总之,war 针对 Web 应用,jar 更通用,可用于各种 Java 程序或作为库被引用。
安装私服 nexus ¶
jdk1.8 安装 ¶
https://www.oracle.com/java/technologies/downloads/?er=221886#java8
tar -xf jdk-8u421-linux-x64.tar.gz -C /usr/local/
/usr/local/jdk1.8.0_421/bin/java -version