跳转至

Build 阶段工具

build 工具介绍

构建 Java 项目的工具一般有两种选择 MavenGradle

这里选择 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
2. 修改 nexus jdk 配置
vim /usr/local/nexus/bin/nexus.vmoptions

--- 修改 jdk 版本配置---
INSTALL4J_JAVA_HOME_OVERRIDE=/usr/local/jdk1.8.0_421
---
3. nexus 开启
chown -R nexus:nexus /usr/local/sonatype-work/
su - nexus
/usr/local/nexus/bin/nexus start 将nexus放至前台启动,再可用start放至后台启动 会启动 8081 web 端口
maven 简单使用
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目录下

游览器访问

1. 会启动 8081 端口
cat /usr/local/sonatype-work/nexus3/admin.password

配置代理仓库

配置代理仓库 - 修改为阿里云地址 http://maven.aliyun.com/nexus/content/groups/public
image-20240727101039348
image-20240727101326642

安装 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 环境变量

1. vim /etc/profile
=====================================================
配置文件添加下面两行内容:
export JAVA_HOME=/usr/local/jdk-17.0.12/
export PATH=$JAVA_HOME/bin:$PATH
=====================================================
2. 加载变量
source /etc/profile
3. 查看版本
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 环境变量

1. vim /etc/profile
=====================================================
配置文件添加下面两行内容:
export PATH="$PATH:/usr/local/sonar-scanner/bin/:/usr/local/maven/bin"
=====================================================
2. 加载变量
source /etc/profile
3. 查看版本
mvn -version

测试编译打包

1. 进入 java 项目目录

2. 编译打包
mvn package

maven配置

进入目录并备份配置

cd /usr/local/maven/conf/ && cp settings.xml setings

项目配置本地的 nexus 私服

vim settings.xml
# 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)文件主要有以下区别。

  1. 用途:

    • war 文件主要用于部署 Web 应用程序到 Web 服务器(如 Tomcat)。
    • jar 文件通常是一个可独立运行的 Java 应用程序或库,可以被其他 Java 项目引用。
  2. 内容结构:

    • war 文件包含了 Web 应用的所有组件,如 HTML、JSP 页面、Servlet 类、静态资源(CSS、JavaScript、图片等)、配置文件以及相关的依赖库。

    • jar 文件主要包含 Java 类文件、资源文件和项目所依赖的库。

  3. 运行方式:

    • war 文件需要部署到 Web 容器中才能运行。

    • jar 文件可以通过命令行使用 java -jar 命令直接运行(如果包含了主类和相关配置)。

总之,war 针对 Web 应用,jar 更通用,可用于各种 Java 程序或作为库被引用。

安装私服 nexus

jdk1.8 安装

jdk8 需要登录才能下载
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