文档章节

windows下svn、sonar、nexus、maven、tomcat、jenkins、apidoc环境搭建

生气的代码
 生气的代码
发布于 2017/03/17 12:01
字数 2816
阅读 913
收藏 97

尊重劳动成果,转载请注明转自:https://my.oschina.net/u/164010/blog/861261

注意:安装jenkins之前,请先安装JAVA 8

一、VisualSVN Server安装和配置

  1. www.visualsvn.com/server/download/下载VisualSVN Server版本。
  2. 傻瓜式安装后打开visualsvn server
  3. 右击左边树的VisualSVN Server>>Properties>>Network中将主机名,修改为ip地址。如下图:
  4. 右击左边树的Users>>Create User创建用户名admin/admin。
  5. 右击左边树的Repositories>>Create New Repositorie...创建SVN仓库,并设置admin用户拥有读写权限(web是一个java的web网站的项目根目录),如下图:
  6. SVN安装和配置完成。

二、sonar安装配置

  1.     在https://www.sonarqube.org/downloads/下载sonar的LTS版本(非LTS有可能安装有错误)。
  2. 在数据库中创建用户和数据库,执行以下代码:

    CREATE DATABASE sonar CHARACTER SET utf8 COLLATE utf8_general_ci;
    CREATE USER 'sonar' IDENTIFIED BY 'sonar';
    GRANT ALL ON sonar.* TO 'sonar'@'%' IDENTIFIED BY 'sonar';
    GRANT ALL ON sonar.* TO 'sonar'@'localhost' IDENTIFIED BY 'sonar';

     

  3. 修改数据库下的conf的sonar.properties

    sonar.jdbc.username=sonar
    sonar.jdbc.password=sonar
    
    sonar.jdbc.url=jdbc:mysql://192.168.1.1:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance
    sonar.jdbc.driverClassName=com.mysql.jdbc.Driver

     

  4. 依次运行管理员运行bin/windows-x86-xx/下的InstallNTService.bat,StartSonar.bat。

  5. 运行成功后,打开浏览器,输入http://192.168.1.1:9000,就可以访问sonar,输入admin/admin就可以登录sonar。

  6. 在配置>>系统>>更新中心中安装需要的插件。本人安装了:C#、Chinese Pack、Git、Java、SVN、SonarJS、SonarXML、Timeline、Web,安装后重启sonar服务。

  7. 在配置>>SCM>>SVN中输入svn的用户名和密码(不输入这个在执行sonar和jenkins的时候会出现SVN E170001错误),如图:

  8. 在Administrator>>安全>>Tokens中,随便输入一个名字,点击Generate,生成token,拷贝生成好的token,预留到之后和jenkins集成的时候使用。

  9. 如果是maven项目,修改maven项目下的sonar配置,修改conf/settings.xml文件的profiles节点,增加sonar的配置

    <profile>
                <id>sonar</id>
                <activation>
                    <activeByDefault>true</activeByDefault>
                </activation>
                <properties>
                    <!-- Optional URL to server. Default value is http://localhost:9000 -->
                    <sonar.host.url>
                      http://192.168.1.1:9000
                    </sonar.host.url>
                </properties>
            </profile>

    之后在maven项目的pom.xml下执行以下代码就可以将项目的质量分析交给sonar处理了。

    mvn clean install sonar:sonar

     

  10. sonar安装和配置到此结束。

三、nexus安装和配置

  1. https://www.sonatype.com/download-oss-sonatype下载2.x版本的bundle.zip(3.x本人安装不成功)
  2. 解压并依次用管理员运行nexus-xxx\bin\jsw\windows-x86-xx的install-nexus.bat和start-nexus.bat。
  3. 运行成功后,在浏览器输入http://192.168.1.1:8081/nexus,输入admin/admin123登录。
  4. 登录成功后,复制Repositories中的Public Repositories的url地址,预留后面结合maven使用。
  5. 顺便说下:
    (1)在3rd party中可上传第三方包。在Releases和Snapshots个人开发的jar包。Releases为发布的版本,Snapshots为快照,只要在maven的pom文件中的版本号有-Snapshots的后缀,就会自动上传到Snapshots中。
    (2)在pom文件中可以配置下面代码上传到Releases和Snapshots。
      <!-- 配置repleash和snapshots -->
    <distributionManagement>
    	<repository>
    		<id> nexus-releases</id>
    		<name> Nexus Release Repository</name>
    		<url> http://192.168.1.1:8081/nexus/content/repositories/releases/</url>
    	</repository>
    	<!-- 如版本号中包含-SNAPSHOT则会传到快照中 -->
    	<snapshotRepository>
    		<id> nexus-snapshots</id>
    		<name> Nexus Snapshot Repository</name>
    		<url> http://192.168.1.1:8081/nexus/content/repositories/snapshots/</url>
    	</snapshotRepository>
    </distributionManagement>
    (3)命令行运行到个人开发库的pom目录,执行下面命令行就可以发布到Releases和Snapshots(后面命令为跳过测试)。
    mvn deploy -Dmaven.test.skip=true

    (4)当然,这还需要在maven的settings.xml配置文件中,配置nexus的服务器、用户名和密码信息。这个稍后再讲。

  6. nexus安装和配置完成。

四、maven安装和配置

  1. maven.apache.org/download.cgi下载maven。
  2. 解压后并将maven的根目录添加到系统环境变量中。
  3. 修改conf/settings.xml,修改节点localRepository设置maven下载的jar包存放路径
    <localRepository>E:/maven-repo</localRepository>
    修改servers节点,添加上传到nexus的Releases和Snapshots的用户名和密码,修改了这个后上一节后面说的就可以上传到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>
    修改mirrors节点,设置nexus公共库的地址
    <mirrors>
        <mirror>
          <id> nexus-public</id>    
          <name> Nexus Mirror</name>    
          <url> http://192.168.1.1:8081/nexus/content/groups/public/</url>    
          <mirrorOf> central</mirrorOf>
        </mirror>
      </mirrors>
    设置完成后,就可以从nexus私服下载pom和jar了。
  4. maven安装完成。

四、tomcat安装和配置

  1. tomcat.apache.org下载tomcat 7(在写本文的时候jinkins还没有tomcat8)
  2. 解压后conf/server.xml的端口号为9900。修改conf/tomcat-users增加以下节点。
    <role rolename="manager-gui"/>
    	<role rolename="manager-script"/>
    	<user username="tomcat" password="tomcat" roles="manager-gui,manager-script"/>
    运行tomcat的服务,打开浏览器输入192.168.1.1:9900/manager看是否能访问。能访问并且输入tomcat/tomcat能登录说明配置成功。(manager项目是用来jenkins自动发布项目用的)
  3. 加入到系统服务中,如果命令行没有service.bat文件就自行想办法吧(tomcat8貌似没有这个文件)。命令行打开到bin目录下,执行service.bat install将tomcat安装到系统服务中,再到系统服务中将其设置为自动启动。
  4. tomcat安装和配置完成。

五、jenkins安装和配置

  1. https://jenkins.io下载jenkins。
  2. 复制上一节下载的tomcat并解压到另一个目录,修改端口号为9100(8005和8009端口号也修改下,不要和9900设置的tomcat端口号冲突)。
  3. 将jenkins复制到webapps目录下。
  4. 运行tomcat的服务(安装到系统服务可上上一节,但是要注意修改tomcat7.exe和tomcat7w.exe的名字不要和上一节的tomcat冲突,比如修改为:tomcat-jenkins.exe和tomcat-jenkinsw.exe,同时修改service.bat文件中的所有tomcat7为tomcat-jenkins)。
  5. 浏览器输入192.168.1.1:9100/jenkins。
  6. 初始登录需要到提示目录中复制初始密码。登录并安装一些插件后就可以进入主界面了。(本人安装后不知道为什么后来修改密码后登录不了,如知晓答案的请您给我留言,谢谢。),如果之后忘记密码,可注释.jenkins目录下的config文件的下列内容,就可以免没密码登录(本人安装后在C:\Windows\System32\config\systemprofile\.jenkins下面)
    <useSecurity>true</useSecurity>
      <authorizationStrategy class="hudson.security.FullControlOnceLoggedInAuthorizationStrategy">
        <denyAnonymousReadAccess>true</denyAnonymousReadAccess>
      </authorizationStrategy>
      <securityRealm class="hudson.security.HudsonPrivateSecurityRealm">
        <disableSignup>true</disableSignup>
        <enableCaptcha>false</enableCaptcha>
      </securityRealm>
      <disableRememberMe>false</disableRememberMe>

     

  7. 在系统管理>>管理插件>>可选插件中安装插件以下插件并重启jenkins:
    Subversion Plug-in:svn插件
    Deploy to container Plugin :tomcat自动部署插件,要结合tomcat的manager项目。
    NodeJS Plugin : nodejs插件,可处理Nodejs相关。
    SonarQube Scanner for Jenkins : sonar插件
    
    其他的自己选...
  8. 在Credentials>>global>>Add Credentials添加SVN的用户名和密码。
  9. 配置sonar:在系统管理>>系统配置中,找到SonarQube servers节点。增加一个SonarQube,输入用户名、url地址、sonar的token(就是前面在sonar创建的token)后保存,如下图:
  10. 配置jenkins全局工具。在系统管理>>Global Tool Configuration中。
    (1)、新增JDK,如图:
    (2)、新增SonarQube Scanner,如图:
    (3)、新增Maven,如下图:
    (4)、新增Nodejs(NodeJS建议使用自动安装,不要使用自己安装的NodeJs,同时在Global npm packages to install中自动安装到apidoc到全局中,使用自己安装的NodeJs容易出现安装后找不到全局安装的模块的命令),如下图:
  11. 环境基本就配置到这里,接下来我再说明怎么在jenkins中新建任务。

一、新建jenkins的任务

  1. 在jenkins面板中,点击新建。
  2. 在新建面板中,输入任务名和和选择构建一个自由风格的软件项目,点击OK。如图:
  3. 在General标签中,点击高级,勾上使用自定义的工作空间,输入目录名,如图:
  4. 在源代码管理设置SVN的项目路径(即第一章节中的截图),和在jenkins设置过的Credentials。如下图:
  5. 在构建触发器设置要执行的任务时间,其中Build periodically为设置多少周期内强制构建,Poll SCM设置的是多少周期内定期构建一次,本人设置的是每天晚上12点构建一次,每3天晚上1点强制构建一次,如下图:
  6. 在构建环境中,选择之前在jenkins的Global Tool Configuration中设置的Nodejs的环境。用于之后构建apidoc生成文档。如下图:
  7. 在构建中增加maven的构建,选择Invoke top-level Maven targets。并选择在jenkins的Global Tool Configuration中设置的maven环境,同时添加maven构建命令和pom。如下面两图:

  8. 在构建中增加sonar构建,选择Execute SonarQube Scanner,并选择在jenkins的Global Tool Configuration中设置的JDK环境。同时,还要设置sonar的项目配置(或在Path to project properties输入sonar-project.properties的目录位置,可以把Analysis properties中输入的内容拷贝到项目根目录下的sonar.properties文件中,当执行命令行时,根目录就是上面设置过的自定义空间的目录名),如下两图:


    另外,Analysis properties代码如下(本人只试验成功java-module,所以其他的都注释了,以后有机会再继续研究):
    #required metadata
    #projectKey项目的唯一标识,不能重复。
    sonar.projectKey=web
    #projectName值不能是中文,否则web页面部分是乱码
    sonar.projectName=web
    sonar.projectVersion=0.0.1-SNAPSHOT
    sonar.sourceEncoding=UTF-8
    #sonar.modules=java-module,javascript-module,html-module,CSS-module
    sonar.modules=java-module
    # Java module
    java-module.sonar.projectName=xmist.traffic.web
    java-module.sonar.language=java
    # .表示projectBaseDir指定的目录
    java-module.sonar.sources=src
    java-module.sonar.projectBaseDir=.
    sonar.binaries=target\classes
    # JavaScript module
    #javascript-module.sonar.projectName=web_js
    #javascript-module.sonar.language=js
    #javascript-module.sonar.sources=webapp
    #javascript-module.sonar.projectBaseDir=.
    # Html module
    #html-module.sonar.projectName=web_html
    #html-module.sonar.language=web
    #html-module.sonar.sources=webapp
    #html-module.sonar.projectBaseDir=.
    # CSS module
    #CSS-module.sonar.projectName=web_css
    #CSS-module.sonar.language=css
    #CSS-module.sonar.sources=webapp
    #CSS-module.sonar.projectBaseDir=.
  9. 在构建中增加windows批处理,如下图:

    输入以下命令执行apidoc生成接口文档。
    apidoc -i ./src/main/ -o E:/tomcat-9900/webapps/api [-c ./] -f ".*\.java$" 
    exit 0

    上面命令中意思是在src/main目录中找到所有的java文件并将生成的代码输出到E:/tomcat-9900/webapps/api目录下(9900就是之前设置的tomcat服务器)。
    当然,执行上面的命令是不会通过的,因为在项目根目录下没有apidoc.json文件。在项目的根目录下创建json文件,内容如下(url地址是生成的接口文档的接口的访问地址,比如生成出来会是:http://192.168.1.1:9900/admin/list):
    apidoc的介绍也可以访问另一篇博客:https://my.oschina.net/u/164010/blog/848729

    {
      "name": "web",
      "version": "0.0.1-SNAPSHOT",
      "description": "web API",
      "title": "web API",
      "url" : "http://192.168.1.1:9900",
      "sampleUrl": "http://192.168.1.1:9900",
      "forceLanguage":"zh-cn",
      "template": {
       "withCompare": true,
       "withGenerator": true
      }
    }

     

  10. 最后,最重要的tomcat服务器部署。

  11. 在构建后操作中,新增Deploy war/ear to a container,并设置tomcat的构建信息。如下两图:


    设置war/ear的目录,即maven编译后的target目录。
    设置Context path,本人设置到编译后自动部署到tomcat ROOT下。也可以设置到其他目录下。
    设置Containers,添加tomcat 7.x,并设置之前设置的tomcat下的manager目录的用户名和密码,还有tomcat的访问地址。

  12. 最后,写了好长。。。。就到此为止了。。。终于写写完了。

  13. 再最后,保存后点击立即构建,就可以自动从svn中检出代码,并执行maven构建、sonar代码分析、apidoc的接口文档生成了。然后,也可以自动的部署到tomcat目录下啦。

  14. 再来,对自己说:辛苦啦!!!

 

© 著作权归作者所有

生气的代码
粉丝 10
博文 12
码字总数 6503
作品 0
厦门
私信 提问
加载中

评论(4)

zzuqiang
zzuqiang

引用来自“生气的代码”的评论

引用来自“zzuqiang”的评论

sonar中的代码约束规范配置项目如何配置?有研究过吗?

没有啊,我才刚研究环境的集成而已,不过貌似点击项目进去后,有可以配置项目的代码约束吧。

是可以的!但是还没有搞清楚里边的详细原理
suanmb
suanmb
感谢分享
生气的代码
生气的代码 博主

引用来自“zzuqiang”的评论

sonar中的代码约束规范配置项目如何配置?有研究过吗?

没有啊,我才刚研究环境的集成而已,不过貌似点击项目进去后,有可以配置项目的代码约束吧。
zzuqiang
zzuqiang
sonar中的代码约束规范配置项目如何配置?有研究过吗?
SonarQube 代码质量管理平台(一):搭建

SonarQube 是一个开源的代码分析平台,用来持续分析和评测代码的质量,支持检测 Java、JavaScript、C#、C、C++ 等二十几种编程语言。通过 SonarQube 可以检测出项目中潜在的Bug、漏洞、代码规...

BeckJin
2018/09/24
0
0
使用Maven+Nexus+Jenkins+Svn+Tomcat+Sonar搭建持续集成环境(二)

前言 上一篇随笔Maven+Nexus+Jenkins+Svn+Tomcat+Sonar搭建持续集成环境(一)介绍maven和nexus的环境搭建,以及如何使用maven和nexus统一管理库文件和版本,以及怎么将自己的模块上传至nex...

凯文加内特
2015/11/05
638
0
圈友社交APP

项目描述 产品现状: 第一版本ios android都已经上线。 第二版本更新: 提供:1.提供后台接口,2.产品第一版本源码(android,ios) 接口文档: https://cloud.quanyou.tv/apidoc/ 产品原型:...

圈友APP
2016/12/25
18
3
一步步搭建jenkins持续集成平台

【持续集成相关工具集】: CI-Server(Jenkins/Hudson.....) 代码管理工具(SVN/git...) java框架(maven) 覆盖率工具(c++:gcov java:maven cobertura插件) 静态扫描插件(jenkins插件) 覆...

彼得
2014/03/28
9K
0
jenkins和docker实现自动化构建部署

应用场景 程序员开发应用,开发后需要提交svn,然后从svn拉取代码,进行构建,发布到tomcat中,发布,然后看呈现效果,这样的工作是频繁反复的在进行的,浪费了程序员的大量时间,那么能不能...

wsc449
2017/12/06
0
0

没有更多内容

加载失败,请刷新页面

加载更多

PostgreSQL 11.3 locking

rudi
今天
5
0
Mybatis Plus sql注入器

一、继承AbstractMethod /** * @author beth * @data 2019-10-23 20:39 */public class DeleteAllMethod extends AbstractMethod { @Override public MappedStatement injectMap......

一个yuanbeth
今天
11
1
一次写shell脚本的经历记录——特殊字符惹的祸

本文首发于微信公众号“我的小碗汤”,扫码文末二维码即可关注,欢迎一起交流! redis在容器化的过程中,涉及到纵向扩pod实例cpu、内存以及redis实例的maxmemory值,statefulset管理的pod需要...

码农实战
今天
4
0
为什么阿里巴巴Java开发手册中不建议在循环体中使用+进行字符串拼接?

之前在阅读《阿里巴巴Java开发手册》时,发现有一条是关于循环体中字符串拼接的建议,具体内容如下: 那么我们首先来用例子来看看在循环体中用 + 或者用 StringBuilder 进行字符串拼接的效率...

武培轩
今天
9
0
队列-链式(c/c++实现)

队列是在线性表功能稍作修改形成的,在生活中排队是不能插队的吧,先排队先得到对待,慢来得排在最后面,这样来就形成了”先进先出“的队列。作用就是通过伟大的程序员来实现算法解决现实生活...

白客C
今天
81
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部