Linux 安装 jenkins 并 配置 maven 项目进行持续集成

本文详细介绍了如何在服务器上安装和配置Jenkins和Maven,包括设置Jenkins的基本环境,如端口修改、防火墙规则、日志查看等,以及Maven的安装、环境配置和阿里云仓库设置。

前言:持续集成需要的基本环境: JDK、Maven、Jenkins,关于JDK安装配置就不再赘述,本文记录基础就在 JDK环境安装好的情况下,安装Jenkins及Maven

一、下载jenkins 安装包 并进行安装

1、下载安装源,wget -O 下载文件并以指定的文件名保存
wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat/jenkins.repo

2、查看安装源 cat /etc/yum.repos.d/jenkins.repo

[jenkins]
name=Jenkins
baseurl=http://pkg.jenkins.io/redhat
gpgcheck=1      //这里会检测key

3、安装jenkins key
rpm --import https://pkg.jenkins.io/redhat/jenkins.io.key

4、安装jenkins

yum install -y jenkins

5、修改Jenkins 默认端口,进入到jenkins 默认配置文件目录, vim /etc/sysconfig/jenkins

找到  JENKINS_PORT="8080" ,JENKINS_AJP_PORT="8009",分别修改成你需要的端口号。

6、更改端口之后重启 jenkins 服务

sudo service jenkins restart

启动时可能会出现报错,错误截图如下
在这里插入图片描述
查看报错信息: systemctl status jenkins.service
在这里插入图片描述
可能是由于 jenkins jdk 路径未配置

vim /etc/init.d/jenkins

增加自己jdk 路径(可用 which java 进行查看)
在这里插入图片描述
编辑保存后重启,启动成功

启动成功之后可能无法访问,可能由于防火墙未开放端口,开启之后可以进行访问
可能是防火墙的原因,需要将 8080端口添加到防火墙规则中

(1)	将端口8080加入到防火墙中
	firewall-cmd --zone=public --add-port=8080/tcp --permanent

(2)	更新防火墙规则
	firewall-cmd --reload
	
(3)	查看防火墙中已打开的端口
	firewall-cmd --zone=public --list-ports

7、查看 jenkins 日志,获取密码

less /var/log/jenkins/jenkins.log

在这里插入图片描述

8、ls /var/lib/jenkins/ //查看程序主目录

jobs    浏览器上面创建的任务都会存放在这里

logs    存放jenkins相关的日志
	
nodes    多节点时用到

plugins    插件所在目录

secrets    密码秘钥所在目录         //jobs和plugins目录比较重要

9、配置 jenkins 全局配置的 jdk 以及 maven 信息

jdk ,由于我的jenkins 和 jdk 在同一服务器,所以直接采用服务器jdk 路径

在这里插入图片描述

maven 信息(可以先进行下面第二大点操作之后再来配置)
在这里插入图片描述

10、一开始的jenkins 创建新项目的时候可能没有 maven项目进行选择 ,我们可以进入插件目录进行下载

在这里插入图片描述

进入“可选插件”页签,搜索 Maven Integration Plugin, 或者 Pipeline Maven Integration Plugin,由于我这里安装好了,所以搜索不出来,可在“已安装”页签中进行检索查看

在这里插入图片描述

11、创建一个maven 项目,配置项目一些基本配置

源码服务器连接地址和用户名信息配置

在这里插入图片描述

配置构建时的maven 信息 和构建后的操作
clean package  -U -DskipTests=true

clean package -U -DskipTests=true -P xlTest
-P xlTest:如果项目中配置了profile切换正式测试环境的,按照这种方式打包就好了
xlTest 就是profile 中的 id

在这里插入图片描述

二、安装配置Maven

1、使用如下命令,直接安装maven

为了方便我这里就放到src目录下,后面可以自己再更换其他目录	
cd /usr/local/src/  
下载 maven 压缩包
wget http://mirrors.cnnic.cn/apache/maven/maven-3/3.3.9/binaries/apache-maven-3.3.9-bin.tar.gz
解压下载的安装包 
tar xf apache-maven-3.3.9-bin.tar.gz 

2、配置maven 环境,vi /etc/profile 文件 加入以下信息

export MAVEN_HOME=/usr/local/maven
export PATH=${PATH}:${MAVEN_HOME}/bin

3、更改 maven 的settings 配置文件,使用阿里云的maven 仓库(可做可不做)
在这里插入图片描述

		<mirror>
        <id>nexus-aliyun</id>
         <mirrorOf>*</mirrorOf>
         <name>Nexus aliyun</name>
         <url>http://maven.aliyun.com/nexus/content/groups/public</url>
        </mirror>

    <!-- 阿里云仓库 -->
 	<mirror>
        <id>alimaven</id>
        <mirrorOf>central</mirrorOf>
        <name>aliyun maven</name>
        <url>http://maven.aliyun.com/nexus/content/repositories/central/</url>
    </mirror>

4、可能有一部分maven 依赖无法从maven 下载,可以选择导入本地jar

mvn install:install-file 
-Dfile=/usr/local/mavenRepository/com/oracle/ojdbc6/11.2.0.3/ojdbc6-11.2.0.3.jar 
-DgroupId=com.oracle 
-DartifactId=ojdbc6 
-Dversion=11.2.0.3 
-Dpackaging=jar

-Dfile: 对于你的jar包的位置
-DgroupId -DartifactId -Dversion三个参数分别对于pom.xml文件中的配置参数选项:如下所示:

<dependency>
    <groupId>com.oracle</groupId>
    <artifactId>ojdbc6</artifactId>
    <version>11.2.0.3</version>
  </dependency>

三、jenkins 执行 shell脚本 提示权限不够解决方法

第一次推送项目可能会出现如下错误
在这里插入图片描述
**

1.将jenkins账号分别加入到root组中

gpasswd -a jenkins root

2.修改/etc/sysconfig/jenkins文件,使用 /JENKINS_USER 查找

JENKINS_USER=root
如果有JENKINS_GROUP,则进行修改,JENKINS_GROUP=root

修改为root权限运行,重启服务

service jenkins restart

3、忘记了admin 密码(此操作作者还未进行亲身体验,若有需要小伙伴可自行操作哦)

cd /var/lib/jenkins/users/admin/

vim config.xml     //找到<passwordHash>这行,用下面一行替换掉原来的
<passwordHash>#jbcrypt:$2a$10$eJAMBW3qb/ijrFsSxkJnDOB747e0mFWSR03UmLCn96E4N7vL5BYzC</passwordHash>

密码就会被重置为123456啦

关注公众号查看更多资源
在这里插入图片描述
在这里插入图片描述

### Pandas 文件格式读写操作教程 #### 1. CSV文件的读取与保存 Pandas 提供了 `read_csv` 方法用于从 CSV 文件中加载数据到 DataFrame 中。同样,也可以使用 `to_csv` 将 DataFrame 数据保存为 CSV 文件。 以下是具体的代码示例: ```python import pandas as pd # 读取CSV文件 df = pd.read_csv('file.csv') # 加载本地CSV文件 [^1] # 保存DataFrame为CSV文件 df.to_csv('output.csv', index=False) # 不保存行索引 [^1] ``` --- #### 2. JSON文件的读取与保存 对于JSON格式的数据,Pandas 支持通过 `read_json` 和 `to_json` 进行读取和存储。无论是本地文件还是远程 URL 都支持。 具体实现如下所示: ```python # 读取本地JSON文件 df = pd.read_json('data.json') # 自动解析为DataFrame对象 [^3] # 从URL读取JSON数据 url = 'https://example.com/data.json' df_url = pd.read_json(url) # 直接从网络地址获取数据 # 保存DataFrame为JSON文件 df.to_json('output.json', orient='records') ``` --- #### 3. Excel文件的读取与保存 针对Excel文件操作Pandas 使用 `read_excel` 来读取 `.xls` 或 `.xlsx` 格式的文件,并提供 `to_excel` 方法导出数据至 Excel 表格。 注意:需要安装额外依赖库 `openpyxl` 或 `xlrd` 才能正常运行这些功能。 ```python # 安装必要模块 (如果尚未安装) !pip install openpyxl xlrd # 读取Excel文件 df_excel = pd.read_excel('file.xlsx', sheet_name='Sheet1') # 导出DataFrame为Excel文件 df.to_excel('output.xlsx', sheet_name='Sheet1', index=False) ``` --- #### 4. SQL数据库的交互 当涉及关系型数据库时,Pandas 可借助 SQLAlchemy 库连接各种类型的数据库(如 SQLite, MySQL)。它允许直接查询并将结果作为 DataFrame 返回;或者反过来把现有 DataFrame 插入到指定表中。 下面是基于SQLite的一个例子: ```python from sqlalchemy import create_engine # 创建引擎实例 engine = create_engine('sqlite:///database.db') # 查询SQL语句并返回DataFrame query = "SELECT name, salary, department FROM employees" sql_df = pd.read_sql(query, engine) # 计算各部门平均工资 avg_salary_by_dept = sql_df.groupby('department')['salary'].mean() # 将DataFrame存回SQL表 avg_salary_by_dept.to_sql(name='average_salaries_per_department', con=engine, if_exists='replace', index=True) ``` 上述片段说明了如何执行基本SQL命令以及后续数据分析流程[^4]。 --- #### 5. 多层次索引(MultiIndex)的应用场景 除了常规单维度索引外,在某些复杂情况下可能需要用到多级索引结构。这时可以依靠 MultiIndex 构建更加灵活的数据模型。 例如定义一个多层列名体系: ```python arrays = [['A','A','B','B'], ['foo','bar','foo','bar']] tuples = list(zip(*arrays)) index = pd.MultiIndex.from_tuples(tuples, names=['first', 'second']) df_multi_indexed = pd.DataFrame([[0,1,2,3], [4,5,6,7]], columns=index) print(df_multi_indexed) ``` 这段脚本演示了怎样构建一个具有双重分类标签的表格布局[^2]。 --- ### 总结 综上所述,Pandas 是一种强大而易用的数据处理工具包,适用于多种常见文件类型之间的相互转换及其高级特性应用开发之中。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值