• Category Archives: 未分类

CentOS7下纯净安装Maven

下载maven

到apache-maven官网中下载对应的zip包:

https://maven.apache.org/download.cgi

解压maven

如果是zip包则使用unzip ***.zip命令;

如果是tar包则使用tar -zxvf xxx.tar命令。

设置环境变量

编辑/etc/profile文件,添加以下设置:

#MAVEN的环境变量
export MAVEN_HOME=/home/apache-maven-3.8.6

#PATH环境变量
export PATH=$MAVEN_HOME/bin

注意:如果有多个path变量请使用“:”号隔开。

测试maven

执行 mvn –version命令,如果安装顺利,则出现maven的版本号,如下图所示:

在树莓派上使用docker运行java程序并操作gpio

在树莓派64位的OS上是无法使用wiringpi的

官方编译的wiringpi在32位下编写的,因此在64位系统中运行会出现如下错误:

虽然有大神提供了自己编译的64位wiringpi,但是依然不行,资料如下:

https://github.com/guation/WiringPi-arm64

https://gitee.com/guation/WiringPi-arm64

修改DockerFile

一般docker运行java程序是会使用openjdk:8的镜像,但是树莓派虽然是64位硬件,但wiringpi只能运行在32位的OS中,因此若需要操作gpio则只能使用32位的OS。再加上openjdk:8并没有提供arm版本,因此需要指定成armv7版本的jdk镜像才能成功打包docker镜像:

#FROM openjdk:8

#指定armv7版本的java8
FROM balenalib/armv7hf-openjdk

在DockerFile中引入WiringPi

COPY ./wiringpi-2.61-1-armhf.deb /wiringpi-2.61-1-armhf.deb
RUN dpkg -i /wiringpi-2.61-1-armhf.deb

在树莓派上安装Gitlab-runner

官方下载地址:https://gitlab-runner-downloads.s3.amazonaws.com/latest/index.html
官网安装文档:https://docs.gitlab.com/runner/install/linux-manually.html

sudo curl -L --output /usr/local/bin/gitlab-runner "https://gitlab-runner-downloads.s3.amazonaws.com/latest/binaries/gitlab-runner-linux-arm"
sudo chmod +x /usr/local/bin/gitlab-runner

#Create a GitLab CI user:

sudo useradd --comment 'GitLab Runner' --create-home gitlab-runner --shell /bin/bash

#Install and run as service:

sudo gitlab-runner install --user=gitlab-runner --working-directory=/home/gitlab-runner
sudo gitlab-runner start

安装过程如下图所示:

设置gitlab-runner开机启动:

sudo systemctl enable gitlab-runner

如果出现跑cicd的时候有如下提示:

则需要使用vi编辑/home/gitlab-runner下的.bash_logout文件(这个文件用ls指令是看不到的),将里面的所有内容都注释掉后重新跑cicd即可:

Springboot2.7.x实现CommandLineRunner运行JavaFX

Application入口改造

实现接口CommandLineRunner,并且重写run()方法,便可以在springboot启动时同时运行一段方法,

import javafx.application.Application;
import org.springframework.boot.CommandLineRunner;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class TestApplication implements CommandLineRunner {

    public static void main(String[] args) {
        SpringApplication.run(TestApplication .class, args);
    }

    @Override
    public void run(String... args) throws Exception {
        Application.launch(MainApp.class, args);
    }
}

创建窗体程序

import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.layout.AnchorPane;
import javafx.stage.Stage;

public class MainApp extends Application {

    @Override
    public void start(Stage primaryStage) throws Exception {
        AnchorPane anchorPane=new AnchorPane();
        Scene scene=new Scene(anchorPane, 200, 150);
        primaryStage.setScene(scene);
        primaryStage.show();
    }

}

运行效果

树莓派设置开机自启动程序springboot程序

第一步:在/etc/init.d/目录下创建shell启动脚本autojar.sh

cd /etc/init.d/
touch autojar.sh
vi autojar.sh

autojar.sh的内容如下:

#!/bin/sh

### BEGIN INIT INFO
# Provides:          raspi.suidian.net.cn
# Required-Start:    $all
# Required-Stop:     
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: autostartup of springboot for RaspberryPi
### END INIT INFO

#程序名
RUN_NAME="SpringBoot.jar"

#jar包位置
JAVA_OPTS=/home/pi/Desktop/raspi-0.0.1-SNAPSHOT.jar
#后台运行日志位置
LOG_OPTS=/home/pi/Desktop/raspi-nohup.out

#开始方法
start() {
	nohup java -jar $JAVA_OPTS >$LOG_OPTS 2>&1 &
	echo "$RUN_NAME started success."
}
 
#结束方法
stop() {
	echo "stopping $RUN_NAME ..."
	kill -9 `ps -ef|grep $JAVA_OPTS|grep -v grep|grep -v stop|awk '{print $2}'`
}

case "$1" in
	start)
		start
		;;
	stop)
		stop
		;;
	restart)
		stop
		start
		;;
	*)
	echo "Userage: $0 {start|stop|restart}"
	exit 1
esac

第二步:给自动启动脚本及springboot程序添加执行权限

 chmod a+x /etc/init.d/autojar.sh
 chmod a+x /home/pi/Desktop/SpringBoot.jar

第三部:添加到系统服务,并设置开机启动:

update-rc.d autojar.sh defaults 90

其他

如果启动日志中出现下图所示情况:

可能由于执行脚本时写在/etc/profile中的环境变量还没有生效。此时在脚本中指定vava执行器的完整bin路径即可,如下图所示:

使用sonar-scanner对静态代码(如vue)进行检查

安装sonar

省略1万字,请看我前几篇文章

下载sonar-scanner

到以下网址下载sonar-scanner:(一般下载最新版即可)

下载sonar-scanner

https://docs.sonarqube.org/latest/analyzing-source-code/scanners/sonarscanner/

下载完毕后进行解压

配置环境变量

编辑/etc/profile文件,补充以下两个配置:

#sonar-scanner的环境变量
export SONAR_SCANNER=/home/sonar-scanner-4.7.0.2747-linux

#PATH环境变量
export PATH=$PATH:$SONAR_SCANNER/bin

创建一个用户令牌

使用管理员账号如下图所示进行操作即可获得令牌:

该令牌用于扫描器进行鉴权。

执行扫描

以下参数根据实际情况进行调整:

    sonar-scanner
      -Dsonar.projectKey=$CI_PROJECT_NAME
      -Dsonar.host.url=https://******
      -Dsonar.login=******
      -Dsonar.sources=./src/
      -Dsonar.sourceEncoding=UTF-8
      -Dsonar.gitlab.commit_sha=$CI_BUILD_REF
      -Dsonar.gitlab.ref_name=$CI_BUILD_REF_NAME
      -Dsonar.gitlab.project_id=$CI_PROJECT_PATH
      -Dsonar.gitlab.max_blocker_issues_gate=-1
      -Dsonar.gitlab.max_critical_issues_gate=-1
      -Dsonar.gitlab.query_max_retry=50
      -Dsonar.gitlab.query_wait=100

执行后可在sonar后台中查看扫描结果:

close