Jenkins+Maven+svn+Tomcat入门文档.docx

上传人:b****6 文档编号:7278949 上传时间:2023-01-22 格式:DOCX 页数:71 大小:1.41MB
下载 相关 举报
Jenkins+Maven+svn+Tomcat入门文档.docx_第1页
第1页 / 共71页
Jenkins+Maven+svn+Tomcat入门文档.docx_第2页
第2页 / 共71页
Jenkins+Maven+svn+Tomcat入门文档.docx_第3页
第3页 / 共71页
Jenkins+Maven+svn+Tomcat入门文档.docx_第4页
第4页 / 共71页
Jenkins+Maven+svn+Tomcat入门文档.docx_第5页
第5页 / 共71页
点击查看更多>>
下载资源
资源描述

Jenkins+Maven+svn+Tomcat入门文档.docx

《Jenkins+Maven+svn+Tomcat入门文档.docx》由会员分享,可在线阅读,更多相关《Jenkins+Maven+svn+Tomcat入门文档.docx(71页珍藏版)》请在冰豆网上搜索。

Jenkins+Maven+svn+Tomcat入门文档.docx

Jenkins+Maven+svn+Tomcat入门文档

Jenkins+Maven+Tomcat构建项目

 

创建日期:

2016.04

版本:

1.0

1.已部署环境地址4

2.Maven4

2.1.基本介绍4

2.2.安装4

2.2.1.下载地址4

2.2.2.安装步骤4

2.2.3.初步使用6

2.2.4.maven中项目的目录结构8

2.2.5.maven的坐标与依赖12

2.3.maven仓库22

2.3.1.什么是Maven仓库22

2.3.2.本地仓库vs.远程仓库22

2.3.3.在POM中配置远程仓库24

2.3.4.在settings.xml中配置远程仓库25

2.3.5.镜像26

2.3.6.分发构件至远程仓库27

2.3.7.小结28

2.4.maven的生命周期28

2.5.maven插件的使用29

2.5.1.插件和生命周期的绑定29

1.1.配置插件30

2.6.聚合与继承32

2.6.1.聚合32

2.6.2.继承33

2.7.使用Nexus创建私服34

2.7.1.安装Nexus34

2.7.2.War方式安装35

2.7.3.配置中央仓库35

2.8.mavensettings.xml的配置38

2.8.1.本地仓库配置38

2.8.2.镜像配置38

2.8.3.服务用户配置38

2.8.4.私有settings.xml配置39

2.9.生成项目站点40

2.10.使用Cargo插件自动化部署web容器44

2.11.使用WebLogicMavenPlugin插件自动化部署weblogic46

2.12.maven和ant的比较49

2.13.maven常用命令49

3.Svn51

3.1.基本介绍51

3.2.安装51

3.2.1.下载地址51

3.2.2.安装步骤51

4.Jenkins53

4.1.基本介绍53

4.2.安装53

4.2.1.下载地址53

4.2.2.安装步骤53

4.3.Jenkins构建项目54

5.案例分析57

5.1.下载57

5.2.现有项目目录结构57

1.已部署环境地址

Jenkins:

http:

//192.168.0.23:

8099/jenkins/

Nexus:

http:

//192.168.0.23:

8081/nexus/

站点Site:

http:

//192.168.0.23:

18080/slide/

Svn:

svn:

//192.168.0.163/rss

2.Maven

2.1.基本介绍

Maven是基于项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告和文档的软件项目管理工具.

  如果你已经有十次输入同样的Anttargets来编译你的代码、jar或者war、生成javadocs,你一定会自问,是否有一个重复性更少却能同样完成该工作的方法。

Maven便提供了这样一种选择,将你的注意力从作业层转移到项目管理层。

Maven项目已经能够知道如何构建和捆绑代码,运行测试,生成文档并宿主项目网页.

  项目的主页地址为:

http:

//maven.apache.org/

2.2.安装

2.2.1.下载地址

官网http:

//maven.apache.org/download.html

本地SHH192.168.0.23/home/geosoft/soft

用户名root密码admins

2.2.2.安装步骤

解压apache-maven-3.0.3.zip到本地目录,下载maven的eclipse插件并安装

Eclipse添加插件

Eclipse插件地址:

http:

//m2eclipse.sonatype.org/sites/m2e/0.10.0.20100209-0800/

装完插件重启eclipse就可以新建maven项目了

在环境变量里配置maven的安装目录

Windows用户如下

Linux用户需要使用export命令设置环境变量

2.2.3.初步使用

我们创建一个maven项目

点击next,到下一个界面这时候需要输入groupid,artifactId,Version,package

groupId :

定义当前Maven项目隶属的实际项目。

首先,Maven项目和实际项目不一定是一对一的关系。

比如SpringFrameWork这一实际项目,其对应的Maven项目会有很多,如spring-core,spring-context等。

这是由于Maven中模块的概念,因此,一个实际项目往往会被划分成很多模块。

其次,groupId不应该对应项目隶属的组织或公司。

原因很简单,一个组织下会有很多实际项目,如果groupId只定义到组织级别,而后面我们会看到,artifactId只能定义Maven项目(模块),那么实际项目这个层次将难以定义。

最后,groupId的表示方式与Java包名的表达方式类似,通常与域名反向一一对应。

 

artifactId:

该元素定义当前实际项目中的一个Maven项目(模块),推荐的做法是使用实际项目名称作为artifactId的前缀。

比如上例中的my-app。

 

version:

该元素定义Maven项目当前的版本

输入之后,点击next就完成项目的创建了

2.2.4.maven中项目的目录结构

2.2.4.1.标准目录结构

一般项目,如jar

编译后代码都集中在prjecto/target目录下

Web项目,如war

编译后代码都集中在prjecto/target目录下

-main

bin脚本库

javajava源代码文件

resources资源库,会自动复制到classes目录里

filters资源过滤文件

assembly组件的描述配置(如何打包)

config配置文件

webappweb应用的目录。

WEB-INF、css、js等

-test

java单元测试java源代码文件

resources测试需要用的资源库

filters测试资源过滤库

-siteSite(一些文档)

target

LICENSE.txtProject’slicense

README.txtProject’sreadme工程根目录下就只有src和target两个目录target是有存放项目构建后的文件和目录,jar包、war包、编译的class文件等。

target里的所有内容都是maven构建的时候生成的.

2.2.4.2.Maven项目的标准目录介绍

Maven提倡使用一个共同的标准目录结构,使开发人员能在熟悉了一个Maven工程后,对其他的Maven工程也能清晰了解。

这样做也省去了很多设置的麻烦。

以下的文档介绍是Maven希望的目录结构,并且也是目录创建工程是采用的目录结构。

Maven推荐大家尽可能的遵守这样的目录结构。

src/main/java

Application/Librarysources

src/main/resources

Application/Libraryresources

src/main/filters

Resourcefilterfiles

src/main/assembly

Assemblydescriptors

src/main/config

Configurationfiles

src/main/webapps

Webapplicationsources

src/test/java

Testsources

src/test/resources

Testresources

src/test/filters

Testresourcefilterfiles

src/site

Site

LICENSE.txt

Project'slicense

README.txt

Project'sreadme

在顶级目录上是工程的描述文件pom.xml(如果使用Ant则还包括其他属性文件,maven.xml或build.xml),另外还包括提供给最终用户的文件,如,README.txt,LICENSE.txt等等。

顶级目录还包括两个子目录:

src,target。

顶级目录下可能出现的其他目录仅仅是CVS或.svn和其他多模块工程的工程目录,最好不要再有其他目录。

Target目录是所有工程编译构建的输出目录。

Src目录包含所有工程的源码文件,配置文件,资源文件等等。

它下面的子目录一般包含main(主要的工程源文件),test(测试文件),site(项目站点文件)。

 

2.2.5.maven的坐标与依赖

2.2.5.1.坐标

1.为什么要定义Maven坐标

    在我们开发Maven项目的时候,需要为其定义适当的坐标,这是Maven强制要求的。

在这个基础上,其他Maven项目才能应用该项目生成的构件。

2.Maven坐标详解

    Maven坐标为各种构件引入了秩序,任何一个构件都必须明确定义自己的坐标,而一组Maven坐标是通过一些元素定义的,它们是groupId,artifactId,version,packaging,class-sifer。

下面是一组坐标定义:

  

Xml代码

com.maven.study

study-dao

0.0.1-SNAPSHOT

jar

com.mycompany.app

my-app

jar

0.0.1-SNAPSHOT

 下面讲解一下各个坐标元素:

groupId :

定义当前Maven项目隶属的实际项目。

首先,Maven项目和实际项目不一定是一对一的关系。

比如SpringFrameWork这一实际项目,其对应的Maven项目会有很多,如spring-core,spring-context等。

这是由于Maven中模块的概念,因此,一个实际项目往往会被划分成很多模块。

其次,groupId不应该对应项目隶属的组织或公司。

原因很简单,一个组织下会有很多实际项目,如果groupId只定义到组织级别,而后面我们会看到,artifactId只能定义Maven项目(模块),那么实际项目这个层次将难以定义。

最后,groupId的表示方式与Java包名的表达方式类似,通常与域名反向一一对应。

artifactId:

该元素定义当前实际项目中的一个Maven项目(模块),推荐的做法是使用实际项目名称作为artifactId的前缀。

比如上例中的my-app。

version:

该元素定义Maven项目当前的版本

packaging:

定义Maven项目打包的方式,首先,打包方式通常与所生成构件的文件扩展名对应,如上例中的packaging为jar,最终的文件名为my-app-0.0.1-SNAPSHOT.jar。

也可以打包成war,ear等。

当不定义packaging的时候,Maven会使用默认值jar

classifier:

该元素用来帮助定义构建输出的一些附件。

附属构件与主构件对应,如上例中的主构件为my-app-0.0.1-SNAPSHOT.jar,该项目可能还会通过一些插件生成如my-app-0.0.1-SNAPSHOT-javadoc.jar,my-app-0.0.1-SNAPSHOT-sources.jar, 这样附属构件也就拥有了自己唯一的坐标

我们项目中用到的jar包可以通过依赖的方式引入,构建项目的时候从Maven仓库下载即可。

2.2.5.2.依赖

Ø依赖配置 

...

group-a

artifact-a

1.0

group-c

excluded-artifact

group-a

artifact-b

1.0

bar

runtime

依赖配置如下:

Xml代码

1.  

2.      

3.      junit  

4.      junit  

5.      3.8.1  

6.      test  

7.      

8.   

junit

junit

3.8.1

test

依赖会包含基本的groupId,artifactId,version等元素,根元素project下的dependencies可以包含一个或者多个dependency元素,以声明一个或者多个依赖。

下面详细讲解每个依赖可以包含的元素:

groupId,artifactId和version:

依赖的基本坐标,对于任何一个依赖来说,基本坐标是最重要的,Maven根据坐标才能找到需要的依赖

type:

依赖的类型,对应于项目坐标定义的packaging。

大部分情况下,该元素不必声明,其默认值是jar

scope:

依赖的范围,下面会进行详解

optional:

标记依赖是否可选

exclusions:

用来排除传递性依赖,下面会进行详解

大部分依赖声明只包含基本坐标。

Ø依赖范围

 Maven在编译主代码的时候需要使用一套classpath,在编译和执行测试的时候会使用另一套classpath,实际运行项目的时候,又会使用一套classpath。

 依赖范围就是用来控制依赖与这三种classpath(编译classpath、测试classpath、运行classpath)的关系,Maven有以下几种依赖范围:

 

compile:

编译依赖范围。

如果没有指定,就会默认使用该依赖范围。

使用此依赖范围的Maven依赖,对于编译、测试、运行三种classpath都有效。

 

test:

测试依赖范围。

使用此依赖范围的Maven依赖,只对于测试classpath有效,在编译主代码或者运行项目的使用时将无法使用此类依赖。

典型的例子就是JUnit,它只有在编译测试代码及运行测试的时候才需要。

 

provided:

已提供依赖范围。

使用此依赖范围的Maven依赖,对于编译和测试classpath有效,但在运行时无效。

典型的例子是servlet-api,编译和测试项目的时候需要该依赖,但在运行项目的时候,由于容器已经提供,就不需要Maven重复地引入一遍。

 

runtime:

运行时依赖范围。

使用此依赖范围的Maven依赖,对于测试和运行classpath有效,但在编译主代码时无效。

典型的例子是JDBC驱动实现,项目主代码的编译只需要JDK提供的JDBC接口,只有在执行测试或者运行项目的时候才需要实现上述接口的具体JDBC驱动。

 

system:

系统依赖范围。

该依赖与三种classpath的关系,和provided依赖范围完全一致。

但是,使用system范围依赖时必须通过systemPath元素显式地指定依赖文件的路径。

由于此类依赖不是通过Maven仓库解析的,而且往往与本机系统绑定,可能造成构建的不可移植,因此应该谨慎使用。

systemPath元素可以引用环境变量,如:

Xml代码

 

1.  

2.    javax.sql  

3.    jdbc-stdext  

4.    2.0  

5.      

6.    ${java.home}/lib/rt.jar  

7.  

javax.sql

jdbc-stdext

2.0

${java.home}/lib/rt.jar

 

import(Maven2.0.9及以上):

导入依赖范围。

在一个maven项目中,如果存在编译需要而发布不需要的jar包,可以用scope标签,值设为provided。

如下:

       

         javax.servlet.jsp

         jsp-api

         2.1

         provided

         

      

scope参数值的说明:

--compile:

默认值。

表明是所有任务所需的资源

--test:

运行所有的测试用例时所需资源

--runtime:

表明是运行时所需资源

--provided:

JDK部分或应用服务器的classpath所需的资源

 

Ø传递性依赖

 下面我们看一个简单的项目,读者可从附件中下载源码

POM.xml配置如下:

Xml代码

 

1.

//maven.apache.org/POM/4.0.0" xmlns:

xsi="http:

//www.w3.org/2001/XMLSchema-instance"  

2.  xsi:

schemaLocation="http:

//maven.apache.org/POM/4.0.0 http:

//maven.apache.org/xsd/maven-4.0.0.xsd">  

3.  4.0.0  

4.  

5.  com.mycompany.app  

6.  my-app-simple  

7.  0.0.1-SNAPSHOT  

8.  jar  

9.  

10.  my-app-simple  

11.  http:

//maven.apache.org  

12.  

13.    

14.    UTF-8  

15.    

16.  

17.    

18.      

19.      junit  

20.      junit  

21.      3.8.1  

22.      test  

23.      

24.      

25.       

26.      org.springframework  

27.      spring-core  

28.      2.5.6  

29.      

30.    

31.  

//maven.apache.org/POM/4.0.0"xmlns:

xsi="http:

//www.w3.org/2001/XMLSchema-instance"

xsi:

schemaLocation="http:

//maven.apache.org/POM/4.0.0http:

//maven.apache.org/xsd/maven-4.0.0.xsd">

4.0.0

com.mycompany.app

my-app-simple

0.0.1-SNAPSHOT

jar

my-app-simple

http:

//maven.apache.org

UTF-8

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 研究生入学考试

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1