jenkins实战安装java maven项目

简介:

一、构建配置搭建

1、创建一个新的项目,选择maven来操作

2、要想构建maven项目,代码库中必须要有一个maven

3、把maven压缩包,解压到一个目录,在当前目录下使用git上传到gitlab项目库

1
2
3
4
5
git init
git add .
git commit -m  "maven"
git remote add origin git@192.168.56.11:YH02 /java .git
git push origin master

4、在gitlab上面新构建一个项目(例子java)并上传maven项目代码

wKiom1kb83KzusYeAACgW1QU2wM178.png-wh_50

wKioL1kb9rLj8qDSAAB8BpQbOT0829.png-wh_50

wKioL1kb9uSAUJ8qAABSstJDpR8438.png-wh_50


(1)maven可以在jenkin的系统设置里面的全局工具设置选项里面有manven安装

(2)手动安装maven

1
2
3
4
5
6
7
8
9
10
11
12
13
apache-maven-3.3.9-bin. tar .gz # 把包上传到jenkins服务器
  [root@salt-node2 ~] # tar xf apache-maven-3.3.9-bin.tar.gz -C /data/
  [root@salt-node2 ~] # ll /data/
total 0
drwxr-xr-x 6 root root 92 May 14 21:40 apache-maven-3.3.9
  [root@salt-node2 ~] # export PATH=$PATH:/data/apache-maven-3.3.9/bin #增加环境变量,可以写到bashrc里面
  [root@salt-node2 ~] # mvn -v
Apache Maven 3.3.9 (bb52d8502b132ec0a5a3f4c09453c07478323dc5; 2015-11-11T00:41:47+08:00)
Maven home:  /data/apache-maven-3 .3.9
Java version: 1.8.0_131, vendor: Oracle Corporation
Java home:  /usr/lib/jvm/java-1 .8.0-openjdk-1.8.0.131-2.b11.el7_3.x86_64 /jre
Default locale: en_US, platform encoding: UTF-8
OS name:  "linux" , version:  "3.10.0-327.el7.x86_64" , arch:  "amd64" , family:  "unix"

(3)在jenkins里面填入manve的安装路径

wKioL1kb-Q2RM3f0AACKxYPr2ss365.png-wh_50

wKioL1kb-bGjtTuHAABL4y-qc48029.png-wh_50

5、SRC是核心文件,pom文件是开发提供

6、保存 开始构建


报错:

wKiom1kcCq-RkQioAAP8qGgjtTE320.png-wh_50

maven库不能连接,由于是国外的服务器,这里我们将配置成国内的服务器

编辑maven的配置文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
  [root@salt-node2 ~] # cd /data/apache-maven-3.3.9/
  [root@salt-node2  /data/apache-maven-3 .3.9] # cd conf/
  [root@salt-node2  /data/apache-maven-3 .3.9 /conf ] # ll
total 16
drwxr-xr-x 2 root root    36 Nov 11  2015 logging
-rw-r--r-- 1 root root 10216 Nov 11  2015 settings.xml
-rw-r--r-- 1 root root  3649 Nov 11  2015 toolchains.xml
  [root@salt-node2  /data/apache-maven-3 .3.9 /conf ] # cp settings.xml settings.xml.bak
  [root@salt-node2  /data/apache-maven-3 .3.9 /conf ] # vim settings.xml
 
  [root@salt-node2  /data/apache-maven-3 .3.9 /conf ] # vim settings.xml
 
<?xml version= "1.0"  encoding= "UTF-8" ?>
<settings xmlns= "http://maven.apache.org/SETTINGS/1.0.0"
           xmlns:xsi= "http://www.w3.org/2001/XMLSchema-instance"
           xsi:schemaLocation= "http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd" >
<mirrors>
  <mirror>
             < id >yxyc< /id >
             <mirrorOf>*< /mirrorOf >
             <url>  #镜像库 
         < /mirror >
     < /mirrors >
         <profiles>
          <profile>
             < id >default< /id >
             <repositories>
                 <repository>
                     < id >public< /id >
                     <url>  #本地库 
                     <releases>
                         <enabled> true < /enabled >
                     < /releases >

查看修改了那些东西

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
  [root@salt-node2  /data/apache-maven-3 .3.9 /conf ] # diff settings.xml settings.xml.bak 
1a2,45
> <!--
> Licensed to the Apache Software Foundation (ASF) under one
> or  more  contributor license agreements.  See the NOTICE  file
> distributed with this work  for  additional information
> regarding copyright ownership.  The ASF licenses this  file
> to you under the Apache License, Version 2.0 (the
"License" ); you may not use this  file  except  in  compliance
> with the License.  You may obtain a copy of the License at
>     http: //www .apache.org /licenses/LICENSE-2 .0
> Unless required by applicable law or agreed to  in  writing,
> software distributed under the License is distributed on an
"AS IS"  BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
> KIND, either express or implied.  See the License  for  the
> specific language governing permissions and limitations
> under the License.
> -->
> <!--
>  | This is the configuration  file  for  Maven. It can be specified at two levels:
>  |
>  |  1. User Level. This settings.xml  file  provides configuration  for  a single user,
>  |                 and is normally provided  in  ${user.home}/.m2 /settings .xml.
>  |
>  |                 NOTE: This location can be overridden with the CLI option:
>  |
>  |                 -s  /path/to/user/settings .xml
>  |
>  |  2. Global Level. This settings.xml  file  provides configuration  for  all Maven
>  |                  users  on a machine (assuming they're all using the same Maven
>  |                 installation). It's normally provided  in
>  |                 ${maven.home} /conf/settings .xml.
>  |
>  |                 NOTE: This location can be overridden with the CLI option:
>  |
>  |                 -gs  /path/to/global/settings .xml
>  |
>  | The sections  in  this sample  file  are intended to give you a running start at
>  | getting the most out of your Maven installation. Where appropriate, the default
>  | values (values used when the setting is not specified) are provided.
>  |
>  |-->
5,31c49,256
< <mirrors>   
<  <mirror>
<             < id >baijia< /id >
<             <mirrorOf>*< /mirrorOf >
<             <url>http: //maven .aliyun.com /nexus/content/groups/public < /url >
<         < /mirror >
<     < /mirrors >
<         <profiles>
<    <profile>
<             < id >default< /id >
<             <repositories>
<                 <repository>
<                     < id >public< /id >
<                     <url>http: //maven .aliyun.com /nexus/content/groups/public < /url >
<                     <releases>
<                         <enabled> true < /enabled >
<                     < /releases >
<                     <snapshots>
<                         <enabled> true < /enabled >
<                     < /snapshots >
<                 < /repository >
<             < /repositories >
<         < /profile >
< < /profiles >
<     <activeProfiles>
<         <activeProfile>default< /activeProfile >
<     < /activeProfiles >
---
>   <!-- localRepository
>    | The path to the  local  repository maven will use to store artifacts.
>    |
>    | Default: ${user.home}/.m2 /repository
>   <localRepository> /path/to/local/repo < /localRepository >
>   -->
>   <!-- interactiveMode
>    | This will determine whether maven prompts you when it needs input. If  set  to  false ,
>    | maven will use a sensible default value, perhaps based on some other setting,  for
>    | the parameter  in  question.
>    |
>    | Default:  true
>   <interactiveMode> true < /interactiveMode >
>   -->
>   <!-- offline
>    | Determines whether maven should attempt to connect to the network when executing a build.
>    | This will have an effect on artifact downloads, artifact deployment, and others.
>    |
>    | Default:  false
>   <offline> false < /offline >
>   -->
>   <!-- pluginGroups
>    | This is a list of additional group identifiers that will be searched when resolving plugins by their prefix, i.e.
>    | when invoking a  command  line like  "mvn prefix:goal" . Maven will automatically add the group identifiers
>    |  "org.apache.maven.plugins"  and  "org.codehaus.mojo"  if  these are not already contained  in  the list.
>    |-->
>   <pluginGroups>
>     <!-- pluginGroup
>      | Specifies a further group identifier to use  for  plugin lookup.
>     <pluginGroup>com.your.plugins< /pluginGroup >
>     -->
>   < /pluginGroups >
>   <!-- proxies
>    | This is a list of proxies  which  can be used on this machine to connect to the network.
>    | Unless otherwise specified (by system property or  command -line switch), the first proxy
>    | specification  in  this list marked as active will be used.
>    |-->
>   <proxies>
>     <!-- proxy
>      | Specification  for  one proxy, to be used  in  connecting to the network.
>      |
>     <proxy>
>       < id >optional< /id >
>       <active> true < /active >
>       <protocol>http< /protocol >
>       <username>proxyuser< /username >
>       <password>proxypass< /password >
>       <host>proxy.host.net< /host >
>       <port>80< /port >
>       <nonProxyHosts> local .net|some.host.com< /nonProxyHosts >
>     < /proxy >
>     -->
>   < /proxies >
>   <!-- servers
>    | This is a list of authentication profiles, keyed by the server- id  used within the system.
>    | Authentication profiles can be used whenever maven must  make  a connection to a remote server.
>    |-->
>   <servers>
>     <!-- server
>      | Specifies the authentication information to use when connecting to a particular server, identified by
>      | a unique name within the system (referred to by the  'id'  attribute below).
>      |
>      | NOTE: You should either specify username /password  OR privateKey /passphrase , since these pairings are
>      |       used together.
>      |
>     <server>
>       < id >deploymentRepo< /id >
>       <username>repouser< /username >
>       <password>repopwd< /password >
>     < /server >
>     -->
>     <!-- Another sample, using keys to authenticate.
>     <server>
>       < id >siteServer< /id >
>       <privateKey> /path/to/private/key < /privateKey >
>       <passphrase>optional; leave empty  if  not used.< /passphrase >
>     < /server >
>     -->
>   < /servers >
>   <!-- mirrors
>    | This is a list of mirrors to be used  in  downloading artifacts from remote repositories.
>    |
>    | It works like this: a POM may  declare  a repository to use  in  resolving certain artifacts.
>    | However, this repository may have problems with heavy traffic at  times , so people have mirrored
>    | it to several places.
>    |
>    | That repository definition will have a unique  id , so we can create a mirror reference  for  that
>    | repository, to be used as an alternate download site. The mirror site will be the preferred
>    | server  for  that repository.
>    |-->
>   <mirrors>
>     <!-- mirror
>      | Specifies a repository mirror site to use instead of a given repository. The repository that
>      | this mirror serves has an ID that matches the mirrorOf element of this mirror. IDs are used
>      |  for  inheritance and direct lookup purposes, and must be unique across the  set  of mirrors.
>      |
>     <mirror>
>       < id >mirrorId< /id >
>       <mirrorOf>repositoryId< /mirrorOf >
>       <name>Human Readable Name  for  this Mirror.< /name >
>       <url>http: //my .repository.com /repo/path < /url >
>     < /mirror >
>      -->
>   < /mirrors >
>   <!-- profiles
>    | This is a list of profiles  which  can be activated  in  a variety of ways, and  which  can modify
>    | the build process. Profiles provided  in  the settings.xml are intended to provide  local  machine-
>    | specific paths and repository locations  which  allow the build to work  in  the  local  environment.
>    |
>    | For example,  if  you have an integration testing plugin - like cactus - that needs to know where
>    | your Tomcat instance is installed, you can provide a variable here such that the variable is
>    | dereferenced during the build process to configure the cactus plugin.
>    |
>    | As noted above, profiles can be activated  in  a variety of ways. One way - the activeProfiles
>    | section of this document (settings.xml) - will be discussed later. Another way essentially
>    | relies on the detection of a system property, either matching a particular value  for  the property,
>    | or merely testing its existence. Profiles can also be activated by JDK version prefix, where a
>    | value of  '1.4'  might activate a profile when the build is executed on a JDK version of  '1.4.2_07' .
>    | Finally, the list of active profiles can be specified directly from the  command  line.
>    |
>    | NOTE: For profiles defined  in  the settings.xml, you are restricted to specifying only artifact
>    |       repositories, plugin repositories, and  free -form properties to be used as configuration
>    |       variables  for  plugins  in  the POM.
>    |
>    |-->
>   <profiles>
>     <!-- profile
>      | Specifies a  set  of introductions to the build process, to be activated using one or  more  of the
>      | mechanisms described above. For inheritance purposes, and to activate profiles via <activatedProfiles/>
>      | or the  command  line, profiles have to have an ID that is unique.
>      |
>      | An encouraged best practice  for  profile identification is to use a consistent naming convention
>      |  for  profiles, such as  'env-dev' 'env-test' 'env-production' 'user-jdcasey' 'user-brett' , etc.
>      | This will  make  it  more  intuitive to understand what the  set  of introduced profiles is attempting
>      | to accomplish, particularly when you only have a list of profile  id 's  for  debug.
>      |
>      | This profile example uses the JDK version to trigger activation, and provides a JDK-specific repo.
>     <profile>
>       < id >jdk-1.4< /id >
>       <activation>
>         <jdk>1.4< /jdk >
>       < /activation >
>       <repositories>
>         <repository>
>           < id >jdk14< /id >
>           <name>Repository  for  JDK 1.4 builds< /name >
>           <url>http: //www .myhost.com /maven/jdk14 < /url >
>           <layout>default< /layout >
>           <snapshotPolicy>always< /snapshotPolicy >
>         < /repository >
>       < /repositories >
>     < /profile >
>     -->
>     <!--
>      | Here is another profile, activated by the system property  'target-env'  with a value of  'dev' ,
>      |  which  provides a specific path to the Tomcat instance. To use this, your plugin configuration
>      | might hypothetically  look  like:
>      |
>      | ...
>      | <plugin>
>      |   <groupId>org.myco.myplugins< /groupId >
>      |   <artifactId>myplugin< /artifactId >
>      |
>      |   <configuration>
>      |     <tomcatLocation>${tomcatPath}< /tomcatLocation >
>      |   < /configuration >
>      | < /plugin >
>      | ...
>      |
>      | NOTE: If you just wanted to inject this configuration whenever someone  set  'target-env'  to
>      |       anything, you could just leave off the <value/> inside the activation-property.
>      |
>     <profile>
>       < id > env -dev< /id >
>       <activation>
>         <property>
>           <name>target- env < /name >
>           <value>dev< /value >
>         < /property >
>       < /activation >
>       <properties>
>         <tomcatPath> /path/to/tomcat/instance < /tomcatPath >
>       < /properties >
>     < /profile >
>     -->
>   < /profiles >
>   <!-- activeProfiles
>    | List of profiles that are active  for  all builds.
>    |
>   <activeProfiles>
>     <activeProfile>alwaysActiveProfile< /activeProfile >
>     <activeProfile>anotherAlwaysActiveProfile< /activeProfile >
>   < /activeProfiles >
>   -->


二、部署

上面的构建完毕后,接下来是部署了。

我们要在java1上配置里面,写入新的内容,来完成构建完毕后,自动部署的功能!!!

wKiom1kcD4iyuoS4AABRI3UcMLo905.png-wh_50

jenkins 打包完毕后,文件会生成到这个目录

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
  [root@salt-node2 ~] # cd /var/lib/jenkins/jobs/
java/       java1/      PHP/        php-deploy/ 
  [root@salt-node2 ~] # cd /var/lib/jenkins/jobs/java1/
builds/          lastStable/      modules/         workspace/       
config.xml       lastSuccessful/  nextBuildNumber  
  [root@salt-node2 ~] # cd /var/lib/jenkins/jobs/java1/workspace/
  [root@salt-node2  /var/lib/jenkins/jobs/java1/workspace ] # ll
total 8
-rw-r--r-- 1 root root 1574 May 14 22:13 pom.xml
drwxr-xr-x 4 root root   28 May 14 22:13 src
drwxr-xr-x 7 root root 4096 May 14 22:25 target
  [root@salt-node2  /var/lib/jenkins/jobs/java1/workspace ] # cd target/
  [root@salt-node2  /var/lib/jenkins/jobs/java1/workspace/target ] # ll
total 8
drwxr-xr-x 3 root root   16 May 14 22:23 classes
drwxr-xr-x 2 root root   27 May 14 22:24 maven-archiver
drwxr-xr-x 3 root root   34 May 14 22:23 maven-status
-rw-r--r-- 1 root root 2435 May 14 22:24 original-testweb-0.0.1-SNAPSHOT.jar
drwxr-xr-x 2 root root   79 May 14 22:23 surefire-reports
drwxr-xr-x 3 root root   16 May 14 22:23  test -classes
-rw-r--r-- 1 root root 2662 May 14 22:25 testweb-0.0.1-SNAPSHOT.jar


三 maven下载的jar包存放在那里了

在家目录下面有一个.m2文件,下载的jar包都会保存在本地这里

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
  [root@salt-node2 ~] # cd .m2/
  [root@salt-node2 ~/.m2] # ll
total 4
drwxr-xr-x 13 root root 4096 May 14 22:24 repository
  [root@salt-node2 ~/.m2] # cd repository/
  [root@salt-node2 ~/.m2 /repository ] # ll
total 0
drwxr-xr-x 6 root root 66 May 14 22:24 asm
drwxr-xr-x 3 root root 37 May 14 22:21 backport-util-concurrent
drwxr-xr-x 3 root root 24 May 14 22:19 classworlds
drwxr-xr-x 4 root root 29 May 14 22:25 com
drwxr-xr-x 3 root root 24 May 14 22:19 commons-cli
drwxr-xr-x 3 root root 25 May 14 22:24 commons-lang
drwxr-xr-x 3 root root 32 May 14 22:21 commons-logging
drwxr-xr-x 3 root root 17 May 14 22:24 jdom
drwxr-xr-x 3 root root 18 May 14 22:18 junit
drwxr-xr-x 3 root root 18 May 14 22:21 log4j
drwxr-xr-x 6 root root 61 May 14 22:21 org




本文转自 kesungang 51CTO博客,原文链接:http://blog.51cto.com/sgk2011/1926750,如需转载请自行联系原作者

相关文章
|
26天前
|
Java Linux Maven
Linux中安装MAVEN环境配置
Linux中安装MAVEN环境配置
58 3
|
1月前
|
Java Maven
手把手教你搭建Maven项目
手把手教你搭建Maven项目
31 0
|
1月前
|
Web App开发 Java 测试技术
《手把手教你》系列基础篇之(四)-java+ selenium自动化测试- 启动三大浏览器(下)基于Maven(详细教程)
【2月更文挑战第13天】《手把手教你》系列基础篇之(四)-java+ selenium自动化测试- 启动三大浏览器(下)基于Maven(详细教程) 上一篇文章,宏哥已经在搭建的java项目环境中实践了,今天就在基于maven项目的环境中给小伙伴们 或者童鞋们演示一下。
66 1
|
27天前
|
Java Maven 开发工具
maven导入项目出现Unable to import maven project: See logs for details
maven导入项目出现Unable to import maven project: See logs for details
11 0
maven导入项目出现Unable to import maven project: See logs for details
|
11天前
|
Java 应用服务中间件 Maven
使用IDEA搭建SpringMVC环境,Maven导入了依赖,但是运行报错 java.lang.ClassNotFoundException
使用IDEA搭建SpringMVC环境,Maven导入了依赖,但是运行报错 java.lang.ClassNotFoundException
11 1
|
21天前
|
人工智能 Oracle jenkins
【Jenkins】新手安装、运行Jenkins(详细教学)
【Jenkins】新手安装、运行Jenkins(详细教学)
|
26天前
|
Java Maven
maven项目导出可执行jar
maven项目导出可执行jar
28 0
|
26天前
|
Java Maven
maven手动安装jar
maven手动安装jar
21 2
|
27天前
|
Java Maven
运行maven项目出现Error:java: JDK isn‘t specified for module ‘XXX‘
运行maven项目出现Error:java: JDK isn‘t specified for module ‘XXX‘
12 0
|
27天前
|
Java Linux Maven
linux安装maven
linux安装maven
16 0

推荐镜像

更多