# hello **Repository Path**: neondeep/hello ## Basic Information - **Project Name**: hello - **Description**: 本项目是一个简单的hello项目,可以用来测试各种部署环境 - **Primary Language**: Java - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 2 - **Forks**: 1 - **Created**: 2021-03-11 - **Last Updated**: 2024-04-27 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # hello ## 分支介绍 - master:单模块示例项目 - module:多模块示例项目 ## 单模块示例项目部署 ### 本机有docker,然后使用docker部署项目到本机 1. 复制Dockerfile,docker-compose.yml,docker-deploy.sh,Jenkinsfile-docker到项目根目录即可 2. 更改Jenkinsfile里面的参数 3. jenkins新建Pipeline项目,配置上git项目地址即可 ### 利用Publish over SSH插件远程部署项目(部署脚本写到Jenkinsfile) 1. jenkins安装Publish over SSH插件 2. 进入jenkins的系统管理>系统配置>找到Publish over SSH,然后添加一个SSH Servers 3. 复制Jenkinsfile-ssh到项目根目录 4. 更换Jenkinsfile的parameters参数即可 5. jenkins新建Pipeline项目,配置上git项目地址即可 ### 利用Publish over SSH插件远程部署项目(部署脚本写到单独deploy.sh) 1. jenkins安装Publish over SSH插件 2. 进入jenkins的系统管理>系统配置>找到Publish over SSH,然后添加一个SSH Servers 3. 复制deploy.sh、Jenkinsfile-ssh-script到项目根目录 4. 更换Jenkinsfile的parameters参数即可 5. jenkins新建Pipeline项目,配置上git项目地址即可 ### 直接在jenkins的 Post Steps 配置 Execute shell ```shell BUILD_ID=DONTKILLME #!/bin/sh #模块名字 MODULE_NAME=xxx #jar名字 JAR_NAME=xxx.jar #项目启动 jar包存放 目录 JAR_PATH=/opt/project/$MODULE_NAME #编译好的jar 包 TARGET_JAR_FILE=/root/.jenkins/workspace/$MODULE_NAME/target/$JAR_NAME echo '编译好的jar路径:'${TARGET_JAR_FILE} #文件夹不存在就创建 if [[ ! -d $JAR_PATH ]];then mkdir -p $JAR_PATH fi #进入项目目录 cd $JAR_PATH || exit #查看是否有进程 pid=`ps -ef | grep $JAR_NAME | grep -v grep | awk '{print $2}'` #如果存在杀死进程 if [ -n "$pid" ];then echo "kill -9 的 pid:$pid" kill -9 ${pid} fi #移动jar包 cp ${TARGET_JAR_FILE} ${JAR_PATH} nohup java -Xms256m -Xmx256m -jar $JAR_NAME --spring.profiles.active=dev & echo "项目启动完成..." sleep 20 ``` ## 启动命令 参数解释: - nohup:后台运行命令,忽略挂断信号,使程序在终端关闭后继续运行。 - &:让程序在后台运行。 示例命令: ```shell ################################普通##################### # 运行JAR文件 java -jar hello.jar # 指定JVM选项和参数 java -Xmx512m -Xms256m -jar hello.jar # 为JAR文件传递命令行参数 java -jar hello.jar arg1 arg2 ################################nohup##################### # 后台启动并指定启动环境(如下两种写法一样的) nohup java -jar hello.jar --spring.profiles.active=dev & nohup java -jar hello.jar -Dspring.profiles.active=dev & #指定系统属性或环境变量,使用-D选项,您可以设置Java系统属性,比如设置激活的Spring配置文件。 # 后台启动并指定启动端口 nohup java -jar hello.jar --server.port=8858 & # 将输出和错误重定向到文件 nohup java -jar hello.jar > app.log 2>&1 & # 将输出和错误重定向到/dev/null nohup java -jar hello.jar > /dev/null 2>&1 & ################################指定远程debug################ # 指定调试端口:这将在端口5005上开启一个远程调试服务器,并允许远程调试连接。应用程序将在启动后立即运行,不会挂起等待调试器连接(suspend=n)。 nohup java -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005 -jar hello.jar & # 指定调试端口和挂起模式:在这种情况下,应用程序将在启动后等待调试器连接(suspend=y),直到调试器连接上为止,然后再继续运行。 nohup java -agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=5005 -jar hello.jar & # 指定远程调试的IP地址和端口:通过使用address=0.0.0.0:5005,可以允许从任何IP地址连接到调试端口,而不仅限于本地连接。 nohup java -agentlib:jdwp=transport=dt_socket,server=y,address=0.0.0.0:5005 -jar hello.jar & ``` ## maven命令 ```shell # 清理打包。并跳过测试 mvn clean package -Dmaven.test.skip=true ```