• jenkins 安装


    系统 center-os

    1、

    2、sudo yum install java 

    3、

    • sudo service jenkins start/stop/restart
    • sudo chkconfig jenkins on

    4、注意:

       可能会报错,像下面这样的报错信息

    Starting jenkins (via systemctl):  Job for jenkins.service failed. See 'systemctl status jenkins.service' and 'journalctl -xn' for details.
                                                               [FAILED]
    原因:jenkins 需要jdk ,可能是没有安装jdk ,如果确认已经安装了jkd 可能是安装的jdk的目录不对,

    If you go to /etc/init.d/ and open jenkins file you will find:

    candidates="
    /etc/alternatives/java
    /usr/lib/jvm/java-1.6.0/bin/java
    /usr/lib/jvm/jre-1.6.0/bin/java
    /usr/lib/jvm/java-1.7.0/bin/java
    /usr/lib/jvm/jre-1.7.0/bin/java
    /usr/lib/jvm/java-1.8.0/bin/java
    /usr/lib/jvm/jre-1.8.0/bin/java
    /usr/bin/java
    "
    这个文件里是jenkins 默认去找的 jdk 的安装目录,如果你的jdk的安装目录不在jenkins 默认去找的目录列表里,就会失败,
    解决方法是把你安装的jdk的目录加上去就可以了

    5、安装成功,启动成功后,访问 8080 端口,到页面指定的服务器上的目录文件里复制过来 ,登录后
    就可以浪了


    6、
    卸载jenkins

    service jenkins stop
    yum clean all

    yum -y remove jenkins

     7、修改端口

    新版本的jenkins修改端口
    新版本jenkins的配置文件在/etc/sysconfig/jenkins
    vi /etc/sysconfig/jenkins
    找到JENKINS_PORT="8080" 将端口修改成自己的端口。
    注意:因为jenkins默认启动方式是通过jetty容器启动,如果改成80端口可能会报权限不够的异常,在linux下,如果使用1024以下的端口则需要root权限或需要更改防火墙配置放开端口限制。

    8、解决jenkins内存溢出的问题
    同样修改jenkins的配置文件,修改JAVA_OPTIONS参数
    vi /etc/sysconfig/jenkins
    找到JENKINS_JAVA_OPTIONS="-Djava.awt.headless"
    修改成
    JENKINS_JAVA_OPTIONS="-Djava.awt.headless=true -Xms256m -Xmx512m -XX:MaxNewSize=256m -XX:MaxPermSize=256m"
    具体参数根据自己的机器实际情况调整。

    9、升级jenkins版本
    jenkins官网升级后会在jenkins中推送需要升级的版本消息,下载最新版本的jenkins的war包。
    找到jenkins.war包的安装目录,直接替换就可以了,原来安装的插件,配置什么的都可以不变。版本号变成了最新的版本号
    进入到/usr/lib/jenkins目录将jenkins.war包换成需要升级的最新版的jenkins的war包
    /usr/lib/jenkins/jenkins.war
    重新启动,就完成了升级。


    10、查看jenkins启动运行日志
    vi /var/log/jenkins/jenkins.log



    11、插件安装失败 那就重试

    12、安装maven

      注意:

            用  sudo yum install jenkins   这种方式安装时系统默认用的是jenkins的用户进行安装的,所以启动也切换到jenkins 用户,所以  maven 的安装目录要对jenkins 这个用户权限开发,否则构建任务时,会因为没有权限各种找不到路径

    13、ssh 免密登录    

           1、ssh-keygen -t rsa  

           2、ssh-copy-id -i .ssh/id_rsa.pub  用户名字@192.168.x.xxx

           3、第三步: 登录到远程机器不用输入密码

    1. $  ssh 用户名字@192.168.x.xxx
    2. Last login: Sun Nov 16 17:22:33 2008 from 192.168.1.2

            参考:https://blog.csdn.net/liu_qingbo/article/details/78383892 

      这里要说下,最开始按找网上说要用密钥的方式登录,但是配置的  Path to key  始终提示找不到 rsa 文件,

    继续查找网上资料说,不推荐这种方式,推进下面的方式

     13.2、 点开高级,配置 sshService 

       勾选  Use password authentication, or use a different key  

     

    完成填写之后点击右下角的Test Configuration按钮测试即可 

    参考:https://www.cnblogs.com/wangqianqiannb/p/7200791.html?utm_source=itdadao&utm_medium=referral

    14、执行时报错

      

    这个问题是因为权限导致的,maven是用root 安装的 ,jenkins 是用appuser 启动的,jenkins 没有权限从maven的目录获取依赖jar包,

    15、构建时报错如下:

      

           解决:在pom.xml 中的 parent 节点中添加  <relativePath> 

      另外,构建A项目之前,要把 A 依赖的其他项目先构建成功

    16、另外,我构建A,A依赖B,同时A和B 都是 C 的子项目

       在构建B 时,成功了,在构建A 时,提示找不到 B 和C 

       报错如下:

        

            暂时解决方案是直接把 C 的pom文件 放到了  jenkins 需要的maven里的 仓库的对应的位置上  就可以了  

      

         按说应该是能自动生成好的,

       解决:在本地用eclipse或者mvn 命令生成项目时也遇到了这个问题,就是需要把父级项目也生成一下就可以了

    17、打包后,jar 文件里包含配置文件,依赖的lib包也直接在jar文件里,

      需求:jar里不包含配置文件,把依赖的lib放在外面,配置文件,jar文件,及依赖的lib 在同一级目录

      解决: 在pom.xml 里用  插件 maven-jar-plugin及 maven-dependency-plugin  来解决

           完整的pom.xml 如下:

      

      1 <project xmlns="http://maven.apache.org/POM/4.0.0"
      2     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      3     xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
      4     <modelVersion>4.0.0</modelVersion>
      5     <parent>
      6         .....
      9     </parent>
     10     <artifactId>es-api</artifactId>
     11     <name>es-api</name>
     12     <url>http://maven.apache.org</url>
     13     <properties>
     14         <java-version>1.8</java-version>
     15         <junit.version>4.11</junit.version>
     16         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
     17         <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
     18 
     19     </properties>
     20     <dependencies>
     21         <dependency>
     22             .....
     25         </dependency>
     26         <dependency>
     27             ......
     30         </dependency>
     31     </dependencies>
     32     <build>
     33         <plugins>
     34             <plugin>
     35                 <groupId>org.apache.maven.plugins</groupId>
     36                 <artifactId>maven-surefire-plugin</artifactId>
     37                 <configuration>
     38                     <!-- 略过整个单元测试的执行,不推荐 -->
     39                     <skip>true</skip>
     40                 </configuration>
     41             </plugin>
     42             <plugin>
     43                 <groupId>org.apache.maven.plugins</groupId>
     44                 <artifactId>maven-compiler-plugin</artifactId>
     45                 <configuration>
     46                     <source>${java-version}</source>
     47                     <target>${java-version}</target>
     48                     <encoding>${project.build.sourceEncoding}</encoding>
     49                 </configuration>
     50             </plugin>
     51             <!-- 打JAR包 -->
     52             <plugin>
     53                 <groupId>org.apache.maven.plugins</groupId>
     54                 <artifactId>maven-jar-plugin</artifactId>
     55                 <configuration>
     56                     <!-- 不打包资源文件(配置文件和依赖包分开) -->
     57                     <excludes>
     58                         <exclude>static/**</exclude>
     59                         <exclude>templates/**</exclude>
     60                         <exclude>*.yml</exclude>
     61                         <exclude>*.properties</exclude>
     62                         <exclude>*.xml</exclude>
     63                         <exclude>*.txt</exclude>
     64                     </excludes>
     65                     <archive>
     66                         <manifest>
     67                             <addClasspath>true</addClasspath>
     68                             <!-- MANIFEST.MF 中 Class-Path 加入前缀 -->
     69                             <classpathPrefix>. esApi_lib/</classpathPrefix>
     70                             <!-- jar包不包含唯一版本标识 -->
     71                             <useUniqueVersions>false</useUniqueVersions>
     72                             <!--指定入口类 -->
     73                             <mainClass>.....</mainClass>
     74                         </manifest>
     75                         <!-- <manifestEntries> MANIFEST.MF 中 Class-Path 加入资源文件目录 <Class-Path>./resources/</Class-Path> 
     76                             </manifestEntries> -->
     77                     </archive>
     78                     <outputDirectory>${project.build.directory}</outputDirectory>
     79                 </configuration>
     80             </plugin>
     81 
     82             <!-- 该插件的作用是用于复制依赖的jar包到指定的文件夹里 -->
     83             <plugin>
     84                 <groupId>org.apache.maven.plugins</groupId>
     85                 <artifactId>maven-dependency-plugin</artifactId>
     86                 <executions>
     87                     <execution>
     88                         <id>copy-dependencies</id>
     89                         <phase>package</phase>
     90                         <goals>
     91                             <goal>copy-dependencies</goal>
     92                         </goals>
     93                         <configuration>
     94                             <outputDirectory>${project.build.directory}/esApi_lib/</outputDirectory>
     95                         </configuration>
     96                     </execution>
     97                 </executions>
     98             </plugin>
     99         </plugins>
    100         <finalName>esApi</finalName>
    101     </build>
    102 </project>

    参考:

    https://www.cnblogs.com/feiye512/p/10240010.html

    https://www.cnblogs.com/selier/p/9510326.html

    18、后续操作 借鉴:https://www.cnblogs.com/ityouknow/archive/2017/11/26/7899349.html

    19、构建时还报了个这样的错

               21:04:45 ERROR: Failed to parse POMs 21:04:45 java.io.IOException: Cannot run program "/opt/java/jdk1.8.0_181/bin/java" (in directory "/opt/jenkins/homeDir/workspace/national-common-dependency"): error=13, Permission denied

    解决:

    java.io.IOException: Cannot run program "/opt/jdk/jre/bin/java": error=13, Permission denied
    Permission denied已经提示很清楚了,没有权限,解决方法:

       执行命令: chmod 777 /opt/jdk/jre/bin/java

    简直崩溃..

  • 相关阅读:
    基于jquery自己写滑动门(通用版)
    这一年,做为asp.net程序员我合格吗?
    基于jquery的滚动条滚动固定div(附Demo)
    asp.net获取数据随机显示(原创)
    为昨天一篇博文【asp.net,对于一个有点经验的猴子,我的要求高么?】做点解释
    2012年总结,2013年更精彩。
    放大镜
    be strong
    模拟凡客导航
    Ajax中Get请求与Post请求的区别(转载)
  • 原文地址:https://www.cnblogs.com/feiye512/p/9803002.html
Copyright © 2020-2023  润新知