一、环境
- 封装软件:rpmbuild
- 编译环境:java-1.8.0 maven
二、SPEC文件
%global __os_install_post %{nil}
%define XC_XONE_JAVA_NAME XONE-java
%define XC_XONE_JAVA_VERSION 100.100.1
Name: %{XC_XONE_JAVA_NAME}
Version: %{XC_XONE_JAVA_VERSION}
Release: 1%{?dist}
Summary: xunce-java
Group: Applications
License: BSD
URL: http://blog.g6p.cn/
Source0: .
BuildRequires: java-1.8.0-openjdk java-1.8.0-openjdk-devel
Requires: java-1.8.0-openjdk fastdfs
%description
xunce xone-java
%prep
%build
source /etc/profile
mvn clean compile verify -P prod -DskipTests
%install
%{__mkdir_p} %{buildroot}/data/scada-task/script
cp -r target/scada-task-[0-9]*.[0-9]*.[0-9]*-SNAPSHOT-dist/scada-task %{buildroot}/data/
#cp -rf /tmp/scada-task/assembly/bin/docker-entrypoint.sh /data/scada-task/bin/
find %{buildroot}/data/scada-task/bin/ -name "*.sh" |dos2unix
sudo chmod a+x %{buildroot}/data/scada-task/bin/*.sh
cat > %{buildroot}/data/scada-task/bin/java_start.sh <<EOF
#!/bin/bash
/bin/sh /data/scada-task/bin/run.sh restart
EOF
%post
# echo -e "\033[32m 请到/data/XONE/script/下手动执行sql脚本!!! \033[0m"
# echo -e "\033[32m 请到/data/XONE/doc/查看更新文档!!! \033[0m"
echo -e "\033[32m [安装完成] 程序主目录为/data/scada-task/ \033[0m"
%files
%doc
/data/scada-task
%config(noreplace) /data/scada-task/config/*.yml
%changelog
三、参数解析
编译参数阶段及参数
阶段 | 读取的目录 | 写入的目录 | 具体动作 |
---|---|---|---|
%prep | %_sourcedir | %_builddir | 读取位于 %_sourcedir 目录的源代码和 patch 。之后,解压源代码至 %_builddir 的子目录并应用所有 patch。 |
%build | %_builddir | %_builddir | 编译位于 %_builddir 构建目录下的文件。通过执行类似 “./configure && make” 的命令实现。 |
%install | %_builddir | %_buildrootdir | 读取位于 %_builddir 构建目录下的文件并将其安装至 %_buildrootdir 目录。这些文件就是用户安装 RPM 后,最终得到的文件。 |
%pre | 软体包安装之前事物操作 | ||
%post | 软体包安装之后事物操作 | ||
%files | 需要被打包/安装的文件列表 |
参考手册: https://fedoraproject.org/wiki/How_to_create_an_RPM_package/zh-cn#.25install_.E9.83.A8.E5.88.86
留言