一、安装环境

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文件,如下图:

jenkins 如何配置非maven项目的执行器数量 jenkins没有maven项目_maven


解决思路:先手动在服务器上用maven来构建一个项目,利用这个构建出来的pom.xml复制到对应的目录

a、先执行:mvn archetype:generate -DgroupId=com.mycompany.app -DartifactId=my-app -DarchetypeArtifactId=maven-archetype-quickstart -DarchetypeVersinotallow=1.4 -DinteractiveMode=false

这个过程很漫长,原因是镜像源不稳定,如果失败,就反复执行这个语句,直到成功。

b、执行成功后,在root目录下,有my-app这个文件夹,如果没有就表示没有成功。打开该文件夹,就会发现有pom.xml这个文件,把这个pom.xml原封不动的复制到日志中提示错误没有发现该文件的地方,我的是在:/var/lib/jenkins/workspace/test/目录下。当然,复制过去的名字这些都是默认名字,可以在pom.xml文件中去修改名字、以及一些其他配置,这就不提。

2、在执行构建项目时,一般报错最多的,是下载不成功,如下图

jenkins 如何配置非maven项目的执行器数量 jenkins没有maven项目_ssh_02


这个原因就是使用了默认的镜像,由于是国外的,所以很难成功下载,导致警鈴大作,报一堆错,因此,需要使用国内的镜像,网上一般使用的是阿里镜像。

这需要修改下面这个地方:

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>

jenkins 如何配置非maven项目的执行器数量 jenkins没有maven项目_ssh_03


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>

放的位置,如下图

jenkins 如何配置非maven项目的执行器数量 jenkins没有maven项目_jenkins_04


3、在打包成功后,却没有将文件传到对应的远程服务器上,报错如下图:

jenkins 如何配置非maven项目的执行器数量 jenkins没有maven项目_ssh_05


这个地方出现问题,基本上都是配置构建参数那个地方出了问题,前提都是Publish over SSH测试连接成功的,我遇到的有两个地方,供大家借鉴下

jenkins 如何配置非maven项目的执行器数量 jenkins没有maven项目_经验分享_06


a、上图红框中的,都只填相对路径,不要填绝对路径。

b、上图绿框中,注意后缀,很多人忽略了,打包出来的是.jar包还是.war包,一般情况下,都是war包,就没有这个问题,如果出来的包是.jar包,那么这个地方就应该配置成:target/* .jar,当然如果是war包,那就应该是:target/* .war包。

如果分不清是什么包,可以到target文件下面去找下,看下到底是什么包,如下图:

jenkins 如何配置非maven项目的执行器数量 jenkins没有maven项目_经验分享_07


4、顺便多说点,控制打包到底是jar包还是war包,当然,一般情况下,默认是jar包,如果想修改为war包,就直接修改pom.xml文件,在里面加上下面画红框的部分,截图是变成war包,当然如果强制去改,估计就是何以笙箫默了,就会报错,比如你的程序本身就不是web项目的。知道在哪修改就行,不做强制要求。

jenkins 如何配置非maven项目的执行器数量 jenkins没有maven项目_java_08


代码块如下:注意是放在不同位置的。

<packaging>war</packaging>

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

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