欢迎光临
我们一直在努力

JenkinsCI服务器搭建及Maven私服Nexus

Jenkins CI服务器搭建及Maven私服nexus

一:Jenkins持续集成(CI1

1.1Jenkins简介及特性1

1.2Jenkins安装1

1.3Jenkins配置1

1.4Jenkins插件checkstylefindbug安装1

1.5Jenkins自动部署1

二:Maven私服Sonatype Nexus1

2.1Nexus简介1

2.2Nexus安装1

2.3:配置1

一:Jenkins持续集成(CI

1.1Jenkins简介及特性

1、只维护一个源码仓库

2、自动化build

3、让build自行测试

4、每人每天都要向mainline提交代码

5、每次提交都应在集成计算机上重新构建mainline

6、保持快速build

7、在模拟生产环境中进行测试

8、让每个人都能轻易获得最新的可执行文件

9、每个人都能看到进度

10、自动化部署

1、 Jenkins 下载

Jenkins 下载网址:http://jenkins-ci.org/

2、 Jenkins 安装

(1) 安装JDK

解压下载的JDK:tar zxvf jdk-7u55-linux-x64.gz

/home/admin下面:cp -r jdk1.7.0_55/ /opt/java7

设置环境变量:

修改/etc/profile文件

export JAVA_HOME=/opt/java7/jdk1.7.0_55

export JRE_HOME=$JAVA_HOME/jre

export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH

export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin

使环境变量生效

# source /etc/profile

(2) 部署安装Tomcat

Tomcat下载:http://tomcat.apache.org/download-70.cgi

Tomcat安装:

a) 解压

# tar zxvf apache-tomcat-7.0.54.zip

b) 移动到其他目录

# mv apache-tomcat-7.0.55 /opt/tomcat-ci

(3)Linux 搭建安装Maven

Maven下载:apache-maven-3.2.1-bin.tar.gz

安装:

#tar -zxvf apache-maven-3.2.1-bin.tar.gz

#mv apache-maven-3.2.1 /opt/maven

#vim /etc/profile

添加下面内容:

#maven
M2_HOME=/opt/maven/apache-maven-3.2.1
PATH=$PATH:$M2_HOME/bin
export M2_HOME PATH

然后使环境变量生效:

#source /etc/profile

输入#mvn -v验证是否成功。

(4) 拷贝下载的 jenkins.war 到 tomcat的webapps目录下:

sudo cp jenkins.war /opt/tomcat-ci/apache-tomcat-7.0.54/webapps/

5 启动Tomcat服务

# cd /opt/tomcat-ci/apache-tomcat-7.0.54/bin

# ./startup.sh

Jenkins 验证

在浏览器里,输入网址: http://localhost:8080/jenkins/ 显示下面界面:

1、系统配置

在系统配置里面配置好相关环境,有如下:

JDK:

Maven:

保存:

2、新建JOB(工程)

保存,就跳到该job(om)的配置管理了,把一下相关配置。

1、构建天数

2、源码管理

项目svn路径,首次使用的时候,系统会提示输入SVN账号密码,我这已经保存了账号这个就不演示了。

3、构建配置

下面还有邮件告警,不使用直接保存即可。

4、进入job,构建项目

点击构建进度条,进入构建详细页面,点击Console Output

直到。。。

Checkstyle安装:

1、在JOB配置中勾选,可以在左侧导航显示

2、Checkstyle安装:系统管理——》插件管理

3、重启

4、配置项目pom.xml文件

<checkstyle.config.location>/opt/google-checkstyle.xml</checkstyle.config.location>

<plugin>

<groupId>org.apache.maven.plugins</groupId>

<artifactId>maven-checkstyle-plugin</artifactId>

<version>2.9.1</version>

</plugin>

5、在job中配置

6、构建项目,验证

到这步就能看到checkstyle信息完成。

FindBug安装:

1、FindBug安装:系统管理——》插件管理

安装和checkstyle一样,完成重启

2、配置pom.xml

<build>

<plugins>

<plugin>

<groupId>org.codehaus.mojo</groupId>

<artifactId>findbugs-maven-plugin</artifactId>

<version>3.0.0</version>

<configuration>

<!-- <configLocation>${basedir}/springside-findbugs.xml</configLocation> -->

<threshold>High</threshold>

<effort>Default</effort>

<findbugsXmlOutput>true</findbugsXmlOutput>

<!-- findbugs xml输出路径--> <findbugsXmlOutputDirectory>target/site</findbugsXmlOutputDirectory>

</configuration>

</plugin>

<plugins>

</build>

3、验证

1、项目管理 --> 插件管理 -->选择可选插件--> 搜索 deploy

Deploy to container Plugin

版本有些版本可能插件名字是:Deploy Plugin

安装就可以了。安装如图:

这个插件的作用 就是 当项目做构建 无误 的时候,自动上传项目到指定的服务器上。我们这里是使用Tomcat

2、因为自动部署需要登录tomcat权限,所以修改 tomcat 目录下的 conf 下的 tomcat-user.xml 添加:

<role rolename="manager-gui"/>

<role rolename="manager-script"/>

<role rolename="manager-jmx"/>

<role rolename="manager-status"/>

<role rolename="admin-gui"/>

<user password="tomcat" roles="manager-gui,manager-script,manager-jmx,manager-status,admin-gui" username="tomcat"/>

3、在项目job配置中配置远程tomcat服务器连接

到此完成构建的时候上传到了 tomcat 的服务器下

二:Maven私服Sonatype Nexus

NexusMaven仓库管理器,如果你使用Maven,你可以从Maven中央仓库 下载所需要的构件(artifact),但这通常不是一个好的做法,你应该在本地架设一个Maven仓库服务器,在代理远程仓库的同时维护本地仓库,以节省带宽和时间,Nexus就可以满足这样的需要。此外,他还提供了强大的仓库管理功能,构件搜索功能,它基于REST,友好的UI是一个extjsREST客户端,它占用较少的内存,基于简单文件系统而非数据库。这些优点使其日趋成为最流行的Maven仓库管理器。

1、下载 我们可以在nexus的官网

上找到它的相关介绍,下载地址是: http://nexus.sonatype.org

,在这里可以找到最新的版本,如果需要以前的版本,在官网上应该也可以找到下载地址。我下载的是:nexus-oss-webapp-1.8.0-bundle.tar.gz

。关于Nexus的详细使用方法可以参照:Repository Management with Nexus

2、安装

解压下载的文件:

# tar xzvf nexus-oss-webapp-1.8.0-bundle.tar.gz

解压后会在同级目录中,出现两个文件夹:nexus-oss-webapp-1.8.0sonatype-work,前者包含了nexus的运行环境和应用程序,后者包含了你自己的配置和数据。

3、启动nexus

在上面的提到,nexus的运行环境在nexus-oss-webapp-1.8.0目录,下面就进入这个目录启动: #cd nexus-oss-webapp-1.8.0/bin/jsw/linux-x86-64/

在这个目录下包含了一个文件夹和三个文件:libnexusplatformwrapper,其中nexus就是启动命令。

进入bin目录,查看nexus是否启动

# ./nexus

执行上面的命令,可以得到nexus命令的用法提示:start 命令启动,stop命令停止。

下面启动nexus

从控制台输出可以看到Nexus已经启动成功,有时候不一定起来了,验证一下

我们可以通过log文件查看更详细的信息:

# tail -f wrapper.log

log中可以看到nexus默认监听的端口是8081

访问Nexus :http://192.168.1.159:8081/nexus

在左边菜单栏里选择Repositories,然后会出现右边的画面,右边上半部分是列出来的repository,黑体字是类型为group的repository. 这里简单介绍下几种repository的类型:

· hosted,本地仓库,通常我们会部署自己的构件到这一类型的仓库。比如公司的第二方库。

· proxy,代理仓库,它们被用来代理远程的公共仓库,如maven中央仓库。

· group,仓库组,用来合并多个hosted/proxy仓库,当你的项目希望在多个repository使用资源时就不需要多次引用了,只需要引用一个group即可。

类型为hosted的为本地仓库,Nexus预定义了3个本地仓库,分别是Releases, Snapshots, 3rd Party. 分别讲一下这三个预置的仓库都是做什么用的:

· Releases: 这里存放我们自己项目中发布的构建, 通常是Release版本的, 比如我们自己做了一个FTP Server的项目, 生成的构件为ftpserver.war, 我们就可以把这个构建发布到Nexus的Releases本地仓库. 关于符合发布后面会有介绍.

· Snapshots: 这个仓库非常的有用, 它的目的是让我们可以发布那些非release版本, 非稳定版本, 比如我们在trunk下开发一个项目,在正式release之前你可能需要临时发布一个版本给你的同伴使用, 因为你的同伴正在依赖你的模块开发, 那么这个时候我们就可以发布Snapshot版本到这个仓库, 你的同伴就可以通过简单的命令来获取和使用这个临时版本.

· 3rd Party: 顾名思义, 第三方库, 你可能会问不是有中央仓库来管理第三方库, 这里的是指可以让你添加自己的第三方库, 比如有些构件在中央仓库是不存在的. 比如你在中央仓库找不到Oracle 的JDBC驱动, 这个时候我们就需要自己添加到3rd party仓库.

仓库组的概念是Maven没有的,通过前面介绍可以了解到, 我们可以建立多个proxy代理仓库,hosted本地仓库, 如果没有仓库组的概念,我们如果需要引用这些仓库的是时候需要一一加入到我们的setting.xml里面去, 有了仓库的组的概念, 我们只需要做一次引用就可以了,把我们需要的仓库加入到仓库组即可,像我们会使用url:

<url>http://127.0.0.1:8081/nexus/content/groups/public/</url>

1要管理Nexus,你首先需要以管理员身份登陆,点击界面右上角的login,输入默认的登录名和密码:admin/admin123,登陆成功后,你会看到左边的导航栏增加了很多内容

这里,可以管理仓库,配置Nexus系统,管理任务,管理用户,角色,权限,查看系统的RSS源,管理及查看系统日志,等等。你会看到Nexus的功能十分丰富和强大,本文,笔者只介绍一些最基本的管理和操作。

点击Repositories将会看到如下界面,其中红色框的三个库是我们配置自己maven的主要原因

2、打开以下三个代理仓库的自动下载功能,Nexus默认是关闭的

打开下载设置Download Remote Indexes True

3、公共仓库聚合配置

保存配置。

5、配置MavenNexus的之间关系。

build构建部署构件到Nexuspom.xml文件中添加:

<project>

...

<distributionManagement>

<repository>

<id>nexus-releases</id>

<name>Nexus Release Repository</name>

<url>http://192.168.1.159:8081/nexus/content/repositories/releases/</url>

</repository>

<snapshotRepository>

<id>nexus-snapshots</id>

<name>Nexus Snapshot Repository</name>

<url>http://192.168.1.159:8081/nexus/content/repositories/snapshots/</url>

</snapshotRepository>

</distributionManagement>

...

</project>

添加Maven setting.xml文件:

<!-- 上传构建到nexus时候需要登录权限 -->

<servers>

...

<server>

<id>nexus-releases</id>

<username>admin</username>

<password>admin123</password>

</server>

<server>

<id>nexus-snapshots</id>

<username>admin</username>

<password>admin123</password>

</server>

...

</servers>

<!-- 配置Nexus仓库镜像 -->

<mirros>

...

<mirror>

<id>nexus-mirror</id>

<name>Nexus Public Mirror</name>

<url>http://192.168.1.159:8081/nexus/content/groups/public</url>

<mirrorOf>central</mirrorOf>

</mirror>

...

</mirrors>

<!-- 配置远程仓库-->

<profiles>

<profile>

<id>nexus-profile</id>

<activation>

<jdk>[1.4,1.7]</jdk>

</activation>

<repositories>

<repository>

<id>nexus</id>

<name>local private nexus</name>

<!--<url>http://maven.oschina.net/content/groups/public/</url>-->

<url>http://192.168.1.159:8081/nexus/content/groups/public</url>

<releases>

<enabled>true</enabled>

</releases>

<snapshots>

<enabled>false</enabled>

</snapshots>

</repository>

</repositories>

<pluginRepositories>

<pluginRepository>

<id>nexus</id>

<name>local private nexus</name>

<!--<url>http://maven.oschina.net/content/groups/public/</url>-->

<url>http://192.168.1.159:8081/nexus/content/groups/public</url>

<releases>

<enabled>true</enabled>

</releases>

<snapshots>

<enabled>false</enabled>

</snapshots>

</pluginRepository>

</pluginRepositories>

</profile>

</profiles>

<!-- 激活nexus-profile -->

<activeProfiles>

<activeProfile>nexus-profile</activeProfile>

</activeProfiles>

到这里配置结束,测试 构建上传。在eclipse中使用maven deploy命令

控制台:

仓库:

6、Eclipse本地仓库不存在的jar在构建过程通过Nexus自动下载jar

7、手动上传外部第三方jar。

有些时候我们需要部署构件到Nexus的3rd party, 比如我们在中央仓库找不到我们需要的构件, 我们可以通过Nexus的UI来上传构件:

点击左边菜单栏的 Repositories, 然后点击右边界面的3rd party, 选择界面下方的Artifact Upload, 这个时候出现以下界面:

Group:Artifact:、Version:,与pom.xml中的版本信息一一对应,选择select artifact jar文件)提交即可。在该仓库中即可看到jar包。

上传构件需要两个步骤,一个是定义文件的上传,再就是构件的实体文件.

第一部分定义文件可以是POM文件, 这也是比较推荐的方式, 如果没有pom文件,可以选择以参数的形式输入.第二部分是上传构件的实体文件,这里简单说一下Classifier和Extension, 这两个都是选填相, Classifier用来区别同功能的构件用于不同的场景, 比如这个构件是分别针对JDK14和JDK15做了2个功能一样的Jar, 这个时候你就需要指定这个构件的Classifier为JDK14还是JDK15. Extension是指扩展名,如果不提供,那么会自动取这个构件的Packaging Type作为扩展名, 比如 ear, jar, war 等等. (Packaging Type是在第一步中通过pom文件或者手工输入得到的)刚才说了3rd party的部署, 关于releases 和 snapshots的UI部署也是一样的操作过程.我们之前也讲过, 这里的releases和snapshots是用来部署我们自己的项目构件的, 通过UI部署是可以,但是不是最高效的, 我们可以通过配置Maven来自动部署我们的项目构件,这也是我们建立自己的仓库的一个非常重要的原因, 下面就让我们看看如何配置:首先需要在POM文件中加入以下代码(参考上面配置部分,pom.xml配置远程仓库地址:

<project>

<distributionManagement>

<repository>

<id> nexus-releases</id>

<name> Nexus Release Repository</name>

<url>http://192.168.1.159:8081/nexus/content/groups/public</url>

</repository>

<snapshotRepository>

<id> nexus-snapshots</id>

<name> Nexus Snapshot Repository</name>

<url>http://192.168.1.159:8081/nexus/content/groups/public</url> </snapshotRepository>

</distributionManagement>

</project>

8、验证

8.1、打包

job配置的Goals and options中使用: install

8.2、发布版本到nexus

job配置的Goals and options中使用: deploy

<!--EndFragment-->

  • 海报
海报图正在生成中...
赞(0) 打赏
声明:
1、本博客不从事任何主机及服务器租赁业务,不参与任何交易,也绝非中介。博客内容仅记录博主个人感兴趣的服务器测评结果及一些服务器相关的优惠活动,信息均摘自网络或来自服务商主动提供;所以对本博客提及的内容不作直接、间接、法定、约定的保证,博客内容也不具备任何参考价值及引导作用,访问者需自行甄别。
2、访问本博客请务必遵守有关互联网的相关法律、规定与规则;不能利用本博客所提及的内容从事任何违法、违规操作;否则造成的一切后果由访问者自行承担。
3、未成年人及不能独立承担法律责任的个人及群体请勿访问本博客。
4、一旦您访问本博客,即表示您已经知晓并接受了以上声明通告。
文章名称:《JenkinsCI服务器搭建及Maven私服Nexus》
文章链接:https://www.456zj.com/38226.html
本站资源仅供个人学习交流,请于下载后24小时内删除,不允许用于商业用途,否则法律问题自行承担。

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址