`
yzz9i
  • 浏览: 221537 次
  • 性别: Icon_minigender_1
  • 来自: 湖南
社区版块
存档分类
最新评论

Jenkins CI服务器搭建及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.2Jenkins安装

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.3:配置

1、系统配置

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

JDK:

Maven:

保存:

2、新建JOB(工程)

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

1、构建天数

2、源码管理

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

 

 

3、构建配置

 

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

4、进入job,构建项目

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

直到。。。

 

1.3Jenkins 插件checkstylefindbug安装

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.4Jenkins自动部署

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

2.1Nexus简介

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

2.2Nexus安装

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>       

 

 

2.3:配置

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-->
分享到:
评论

相关推荐

    使用maven私服nexus

    4. 结合CI/CD工具(如Jenkins)自动部署构件到Nexus,确保版本一致性和可靠性。 总之,Maven Nexus是一个强大的工具,能够有效提升开发效率,简化依赖管理,增强项目的可维护性。正确配置和使用Nexus,可以为整个...

    maven-nexus本地私服

    Nexus 可以与持续集成工具(如 Jenkins、GitLab CI/CD)集成,自动发布构建结果到 Nexus 仓库,实现自动化部署。 五、Nexus 工作原理 当 Maven 构建项目时,它会首先查找本地仓库的依赖。如果找不到,Maven 将查询...

    Maven私服 Nexus2.14.2 配置了阿里云仓库

    3. **持续集成**:在CI/CD流程中,配置Jenkins或其他持续集成工具,使其使用配置好的Nexus阿里云仓库,以加速构建过程。 通过以上配置,开发者可以利用Nexus 2.14.2与阿里云仓库的结合,优化开发环境,提高开发效率...

    apache-maven-nexus.zip

    9. **集成CI/CD工具**:Nexus可与持续集成(CI)工具如Jenkins、Bamboo等无缝集成,自动化构建和部署流程。 10. **RESTful API**:Nexus提供RESTful API,允许开发者编写脚本或工具来自动化仓库管理任务。 部署...

    maven私服,nexus-3.23.0-03-unix.tar.gz

    8. **持续集成**:与 CI/CD 工具(如 Jenkins、GitLab CI/CD)集成,自动部署和验证构件。 **配置和使用 Maven 私服(Nexus):** 1. 安装 Nexus 并启动服务。 2. 在 Maven 的 `settings.xml` 文件中配置私库地址...

    持续集成-Maven-nexus-SNV-jenkins架构

    在现代软件开发流程中,持续集成(Continuous Integration,简称CI)已成为提高开发效率、保障代码质量的关键实践之一。持续集成的核心理念是频繁地将代码集成到共享仓库,并通过自动化工具进行构建、测试,以尽早...

    jenkins持续集成环境搭建步骤

    Jenkins 是一款非常流行的开源持续集成(CI)和持续部署(CD)工具,它能够帮助开发团队自动化完成软件的构建、测试以及部署过程。借助于其强大的插件生态系统,Jenkins 能够很好地支持多种编程语言和构建工具,并且...

    maven私服工具包.rar

    10. **与其他工具集成**: Nexus可以与持续集成工具(如Jenkins、GitLab CI/CD)集成,实现自动化构建、测试和部署流程。 通过以上步骤,你可以在Linux环境中成功搭建并管理一个Maven私有仓库Nexus。请参考指定博客...

    maven私服软件nexus-3.49.0-02-unix,运行于linux环境

    在实际使用过程中,你可能还需要与其他工具集成,如CI/CD系统(如Jenkins)、持续集成服务器,或者通过API自动化发布和管理依赖。Nexus 3.49.0-02作为一个成熟的私有仓库解决方案,能够有效地支持这些需求。 总之,...

    Maven私服镜像 3.37.0.1 包含windows和Linux两个版本

    5. **易于集成**:Nexus支持与其他CI/CD工具(如Jenkins、GitLab CI等)的集成,自动化构建流程。 在部署和配置Nexus时,需要注意以下几点: 1. **系统需求**:确保你的操作系统满足Nexus的硬件和软件需求。 2. **...

    nexus-maven

    9. **与其他工具集成**:Nexus可以轻松集成到持续集成系统(如Jenkins、Travis CI)和版本控制系统(如Git),实现无缝协作。 在使用Nexus时,可能遇到的问题包括但不限于配置错误、权限问题、网络连接故障、版本...

    nexus+maven.zip

    在使用Nexus作为Maven私服时,开发者需要在Maven的`settings.xml`文件中配置Nexus的URL,这样Maven在构建时会首先尝试从Nexus仓库拉取依赖。此外,Nexus还支持通过Web界面进行管理,例如创建不同的仓库组、存储库,...

    nexus私服.zip

    8. **持续集成与自动化**:在持续集成环境中,如Jenkins或GitLab CI/CD,可以配置自动将构建结果部署到Nexus,实现快速的版本迭代和组件分发。 总之,Nexus作为Maven的私有仓库,能够帮助开发者高效地管理依赖,...

    nexus-3.30.1-01-win64.rar

    6. 对于持续集成(CI)服务器,如Jenkins或GitLab CI,需要配置Nexus的认证信息,以便自动部署构建结果。 此外,Nexus还支持与其他工具集成,如Jenkins、Artifactory和CI/CD流程。它可以作为质量门禁点,检查构件的...

    nexus-2-bundle.zip

    8. **持续集成**: Nexus常与持续集成工具(如Jenkins、Travis CI等)集成,自动化构建、测试和部署流程。 综上所述,"nexus-2-bundle.zip"是一个用于在Linux系统上搭建Nexus Maven私服的压缩包,它包含了运行Nexus...

    maven私服apache-archiva-2.2.3-bin.tar.gz

    在实际使用中,Archiva可以与其他工具如Jenkins、GitLab CI/CD等集成,实现自动化构建和部署流程。此外,Archiva支持多种插件,可以扩展其功能,例如与Artifactory或Nexus等其他仓库管理器进行互操作,或者集成身份...

    nexus私服window版

    对于大型企业,Nexus还可以与其他持续集成工具(如Jenkins、GitLab CI/CD)集成,实现自动化构建和部署流程。 总的来说,Nexus私有仓库为Windows环境下的软件开发团队提供了高效、可控的依赖管理解决方案。通过正确...

    nexus3.19.0-win64.zip

    本文将详细解析“nexus3.19.0-win64.zip”这个压缩包及其相关知识点,帮助你搭建和使用 Maven 私服服务器 Nexus 3 在 Windows 操作系统上。 一、Nexus 3 简介 Nexus 3 是 Nexus 的最新版本,它作为一个中央仓库管理...

    maven代码自动将本地仓库中的包上传到maven私服

    在持续集成(CI)环境中,如Jenkins、GitLab CI/CD或Travis CI,你可以配置构建步骤来自动化此过程。只需确保构建脚本中包含`mvn deploy`命令,每次代码变动后,新版本就会自动上传到私有仓库。 7. 版本控制 在上...

    nexus-2.14.9 私服仓库

    7. **持续集成**:将Nexus与持续集成(CI)系统如Jenkins、GitLab CI/CD等集成,确保构建过程中的依赖管理和部署流程自动化。 总之,Nexus 2.14.9作为一个高效的私有仓库,能够显著提升企业的软件开发效率,同时保障...

Global site tag (gtag.js) - Google Analytics