JenkinsHudson使用Maven构建war包
还有一种自动化是使用[[../Git相关/GitLabCI-CD示例]]
jenkins有docker镜像,可以直接通过docker方式安装(推荐)
以下操作是在Hudson上进行,不过两者操作上区别不大
1、安装maven、svn、git等插件, 2、设置环境变量,添加jdk Maven 3、新建任务,类型选择maven 4、设置代码源
一、源码管理为SVN,构建过程中的部分问题
设置maven 最好直接找开发人员要一份他们设置好的maven settings.xml
错误1
注意修改项目源代码中的配置文件,一般开发人员电脑为windows系统,且部分依赖包引入路径不相同,如果不修改或确认会导致类似如下错误
经查找,为源代码中的如下路径设置不当,修改为jenkins/hudson服务器上该包的位置即可
错误2
无法下载部分jar报错处理:
最直接的办法,直接找开发索取通过pom.xml文件中配置的nexus地址无法找到的jar包(或从之前已经打好的war包中复制一份出来),放到maven如下目录相应位置,具体路径根据上面图片中下载失败的路径查找即可,我的是手动放到maven下的lib目录就可以了

构建完成后到workspace下的target目录即可看到相应的war包
还有一种解决办法,出现这种情况一般是缺失的jar包需要单独构建,可以和开发人员确认是否需要提前构建所需依赖jar,如果有,则需要为依赖包创建一个构建任务,每次构建前先构建依赖包,或者勾选任务中的 Build whenever a SNAPSHOT dependency is built 选项。这样当依赖包有更新时,构建完依赖包会自动构建跟依赖包有关连的任务(上下游作业)。
错误3
构建war包时,无法引用最新的.class文件。 原因为:构建war包时,如果代码的如下路径有旧的classes目录,或者有旧的.claess文件,hudson会自动使用旧的.class文件,导致最新的.class文件不会被导入。删除代码库该路径下的classes目录再构建即可。
二、源码管理为GitLab,构建过程中的部分问题(测试项目类型为私有,需要设置访问权限,以下用SSH key为例)
1、jenkins/hudson所在服务器或容器需要能访问到源码管理服务器,如果通过ssh key访问,需要将服务器或容器的公钥添加至可访问项目的用户SSH KEY列表 2、因为是私有项目,需要先对git进行 global设置
git config --global user.email "[email protected]"
git config --global user.name "Your Name"3、同样跟上面项目一样,要注意是否有缺失的jar包。如果无问题后即可进行开始构建
4、构建同一项目下的子项目(子目录) 照常填写项目完整库git地址,推荐用sshkey 正常情况下,任务配置界面的ROOT POM直接填写pom.xml,但因为git无法单独拉取库中的子目录,所以如果项目由多个子项目组成,会导致找不到正确的pom.xml文件而无法构建,可以在这里手动添加要构建的子项目路径,明确指定pom.xml文件位置即可。 报错内容
Started by an SCM change
Checkout:workspace / /pd/HudsonHome/jobs/pd-api-notify-v1.2/workspace - hudson.remoting.LocalChannel@6dc59dfe
Using strategy: Default
Git Exe: /usr/bin/git
Checkout:workspace / /pd/HudsonHome/jobs/pd-api-notify-v1.2/workspace - hudson.remoting.LocalChannel@6dc59dfe
Fetching changes from the remote Git repository
Fetching upstream changes from ssh://[email protected]:24822/factoring/yongma.git
Commencing build of Revision 0d82ec3b9bfa9e0f5e5e7c09bd662d9c51b793b6 (origin/master)
Checking out Revision 0d82ec3b9bfa9e0f5e5e7c09bd662d9c51b793b6 (origin/master)
No change to record in branch origin/master
Found mavenVersion 3.0.5 from file jar:file:/pd/maven-3.0.5/lib/maven-core-3.0.5.jar!/META-INF/maven/org.apache.maven/maven-core/pom.properties
Parsing POMs
ERROR: No such file /pd/HudsonHome/jobs/pd-api-notify-v1.2/workspace/pom.xml
Perhaps you need to specify the correct POM file path in the project configuration?
An attempt to send an e-mail to empty list of recipients, ignored.
Finished: FAILURE
另外,在指定完git仓库后,有可能会报如下错误,ERROR: Error cloning remote repo 'origin' 一般再执行一次即可
经多次测试为修改了代码源或者首次添加代码源会报错,再次构建即可正常拉取代码
主要原因是下图中红框处的内容为自动生成,可能会无法识别,手动修改成其它内容保存后再改回来就能解决该报错。

最后更新于