jenkins构建maven项目到远程服务器问题汇总

一、安装环境
1、操作系统:CentOS Linux release 7.6.1810
2、JDK:jdk-11.0.7
3、jenkins:jenkins-2.235.1-1.1.noarch
4、gitlab:gitlab-ce-12.10.11-ce.0.el7.x86_64
二、问题
1、在构建maven项目时,提示没有pom.xml文件,如下图:
在这里插入图片描述
解决思路:先手动在服务器上用maven来构建一个项目,利用这个构建出来的pom.xml复制到对应的目录
a、先执行:mvn archetype:generate -DgroupId=com.mycompany.app -DartifactId=my-app -DarchetypeArtifactId=maven-archetype-quickstart -DarchetypeVersion=1.4 -DinteractiveMode=false
这个过程很漫长,原因是镜像源不稳定,如果失败,就反复执行这个语句,直到成功。
b、执行成功后,在root目录下,有my-app这个文件夹,如果没有就表示没有成功。打开该文件夹,就会发现有pom.xml这个文件,把这个pom.xml原封不动的复制到日志中提示错误没有发现该文件的地方,我的是在:/var/lib/jenkins/workspace/test/目录下。当然,复制过去的名字这些都是默认名字,可以在pom.xml文件中去修改名字、以及一些其他配置,这就不提。
2、在执行构建项目时,一般报错最多的,是下载不成功,如下图
在这里插入图片描述
这个原因就是使用了默认的镜像,由于是国外的,所以很难成功下载,导致警鈴大作,报一堆错,因此,需要使用国内的镜像,网上一般使用的是阿里镜像。
这需要修改下面这个地方:
a、修改settings.xml,文件默认在maven安装文件conf下面,注意添加的位置,是在<mirrors>.....</mirrors>之间添加,语句和截图如下:

<!-- 阿里云镜像 -->
        <mirror>
                <id>alimaven</id>
                <name>aliyun maven</name>
                <url>http://maven.aliyun.com/nexus/content/repositories/central/</url>
                <mirrorOf>central</mirrorOf>
        </mirror>
        <!-- junit镜像地址 -->
        <mirror>
                <id>junit</id>
                <name>junit Address/</name>
                <url>http://jcenter.bintray.com/</url>
                <mirrorOf>central</mirrorOf>
        </mirror>

在这里插入图片描述
2、如果修改后,还是不好使,可以在pom.xml中添加下面语句,但是我没有验证,这个是网上找的:

<repositories>
    <repository>
        <id>central</id>
        <url>http://host:port/content/groups/public</url>
    </repository>
</repositories>

<pluginRepositories>
    <pluginRepository>
        <id>central</id>
        <url>http://host:port/content/groups/public</url>
    </pluginRepository>
</pluginRepositories>

放的位置,如下图
在这里插入图片描述
3、在打包成功后,却没有将文件传到对应的远程服务器上,报错如下图:
在这里插入图片描述
这个地方出现问题,基本上都是配置构建参数那个地方出了问题,前提都是Publish over SSH测试连接成功的,我遇到的有两个地方,供大家借鉴下
在这里插入图片描述
a、上图红框中的,都只填相对路径,不要填绝对路径。
b、上图绿框中,注意后缀,很多人忽略了,打包出来的是.jar包还是.war包,一般情况下,都是war包,就没有这个问题,如果出来的包是.jar包,那么这个地方就应该配置成:target/* .jar,当然如果是war包,那就应该是:target/* .war包。
如果分不清是什么包,可以到target文件下面去找下,看下到底是什么包,如下图:
在这里插入图片描述
4、顺便多说点,控制打包到底是jar包还是war包,当然,一般情况下,默认是jar包,如果想修改为war包,就直接修改pom.xml文件,在里面加上下面画红框的部分,截图是变成war包,当然如果强制去改,估计就是何以笙箫默了,就会报错,比如你的程序本身就不是web项目的。知道在哪修改就行,不做强制要求。
在这里插入图片描述
代码块如下:注意是放在不同位置的。

<packaging>war</packaging>

----------------------------------------------------
<dependency>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-war-plugin</artifactId>
   <version>3.0.0</version>
   </dependency>


分享就这些,希望有缘人能看见,并恰好给予启发,解决了问题,那这个分享就达成使命了。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值