项目运行过程中遇到的问题

目录

    • 问题一、modules未配置SDK
    • 问题二、覆盖率之没有跑到
    • 问题三、Jenkins配置
    • 问题四、allure-results未生成
    • 问题五、覆盖率报告未生成
    • 问题六、包未找到
    • 问题七、test skipped
    • 问题八、单元测试不过,maven打包停止编译
    • 问题九、Jenkins上部署无权限
    • 问题十、覆盖率文件在Jenkins找不到
    • 问题十一、there's no log4j-web module available.
    • 问题十二、SpringBoot +TestNG测试类注入@Autowired空指针异常

问题一、modules未配置SDK

Cannot start compiler: the SDK is not specified for modules
项目运行过程中遇到的问题_第1张图片
解决方法:

  1. 点击File-Project Structure,选择Project,在Project SDK下选择自己jdk的安装路径,点击右下角Apply应用即可
    项目运行过程中遇到的问题_第2张图片

问题二、覆盖率之没有跑到

No coverage results.Click Edit to fix configuration settings.
项目运行过程中遇到的问题_第3张图片
说明:
该工程是多module项目,不同module之间会相互调用,所以在跑覆盖率的时候,配置里不要勾选只跑当前包下的类。

解决方法:
点击上图中的Edit
项目运行过程中遇到的问题_第4张图片

问题三、Jenkins配置

项目运行过程中遇到的问题_第5张图片
解决方法:
在pom文件中添加这一行

<updatePolicy>always</updatePolicy>

添加的位置:
项目运行过程中遇到的问题_第6张图片

添加好之后:
项目运行过程中遇到的问题_第7张图片

问题四、allure-results未生成

解决方法: 添加配置文件,用来指定allure测试报告的配置文件
项目运行过程中遇到的问题_第8张图片

问题五、覆盖率报告未生成

Terminal:
切换到我的项目路径下,执行mvn install:
在这里插入图片描述
问题1:
argLine set to -javaagent:D:\LocalRepository\org\jacoco\org.jacoco.agent\0.8.3\org.jacoco.agent-0.8.3-runtime.jar=destfile=D:\IdeaProjects\test
\nnjf-admin_test\target\jacoco.exec
在这里插入图片描述

问题2:
Skipping JaCoCo execution due to missing execution data file.
项目运行过程中遇到的问题_第9张图片

解决方法:
在pom文件中去掉以下配置,再mvn test运行后生成jacoco_wan.exec文件

 <argLine>
        javaagent:${settings.localRepository}/org/aspectj/aspectjweaver/${aspectj.version}/aspectjweaver-${aspectj.version}.jar
 </argLine>

问题六、包未找到

现状:
执行mvn clean package时,本地仓库是有这些包的:
在这里插入图片描述
报错如下:
Could not resolve dependencies for project …
项目运行过程中遇到的问题_第10张图片
分析:
项目运行过程中遇到的问题_第11张图片
打开maven下的setting配置文件,发现配置这些包没有的时候去阿里云仓库取了:在这里插入图片描述
虽然pom文件里也配置了去私服取,但是这个时候pom文件未生效。

1. settings文件(我的安装路径
D:\DevTool\Maven\apache-maven-3.5.4\conf)

	 <mirror>
	  <id>nexus-aliyun</id>
	  <mirrorOf>*</mirrorOf>
	  <name>Nexus aliyun</name>
	  <url>http://maven.aliyun.com/nexus/content/groups/public</url>
	</mirror>

2. pom文件:

			<repository>
				<id>releases</id>
				<url>http://192.168.210.41:8081/nexus/content/groups/public/</url>
				<releases>
		            <enabled>true</enabled>
					<updatePolicy>always</updatePolicy>
		        </releases>
				<snapshots>
					<enabled>true</enabled>
				</snapshots>	
			</repository>

解决方法:
1、File-Settings-Maven,最好不要用默认的仓库
项目运行过程中遇到的问题_第12张图片
2、

  • 在settings文件中加上如下配置或
  • 把原来阿里云的配置注释掉,则会取pom文件下的配置(这时候pom文件会生效)
	<mirror>
	  <id>nexus-nuonuo</id>
	  <mirrorOf>*</mirrorOf>
	  <name>Nexus nuonuo</name>
	  <url>http://192.XXX.XX.XX:8081/nexus/content/groups/public/</url>
	</mirror>

问题七、test skipped

发现我的pom文件里,这里设置成了true,改成false即可

<properties>
<maven.test.skip>false</maven.test.skip>
</properties>

问题八、单元测试不过,maven打包停止编译

\target\surefire-reports for the individual test results,无法正常打包,原因为单元测试不通过,maven打包就停止编译。

解决办法:

pom.xml中添加插件

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-surefire-plugin</artifactId>
    <configuration>
        <testFailureIgnore>true</testFailureIgnore>
    </configuration>
</plugin>

问题九、Jenkins上部署无权限

Cause: java.sql.SQLException: Access denied for user ‘root’@‘XXX.XX.X.XX’ (using password: YES)
项目运行过程中遇到的问题_第13张图片

解决方法
这个ip是我程序部署的机器的IP(即Jenkins的),加上权限即可

问题十、覆盖率文件在Jenkins找不到

ERROR: Specified HTML directory ‘D:\Jenkins\workspace\nnjf-admin\nnjf-admin\target\coverage-reports’ does not exist.

  • 项目部署在Jenkins上,测试报告、覆盖率报告生成之后就会在Jenkins下的工作空间上。
    项目运行过程中遇到的问题_第14张图片
    问题:
    路径配置错误
    项目运行过程中遇到的问题_第15张图片

解决方法:

查看Jenkins的工作空间目录
项目运行过程中遇到的问题_第16张图片
路径改成:target\allure-results
项目运行过程中遇到的问题_第17张图片

问题十一、there’s no log4j-web module available.

main INFO Log4j appears to be running in a Servlet environment, but there’s no log4j-web module available. If you want better web container support, please add the log4j-web JAR to your web archive or server lib directory.
项目运行过程中遇到的问题_第18张图片
解决方法:
添加依赖

        <dependency>
            <groupId>org.apache.logging.log4j</groupId>
            <artifactId>log4j-web</artifactId>
            <version>2.10.0</version>
        </dependency>

问题十二、SpringBoot +TestNG测试类注入@Autowired空指针异常

问题如下图:
项目运行过程中遇到的问题_第19张图片
解决方法:
加入启动类Application后就可以了,

@RunWith(SpringRunner.class)
@SpringBootTest(classes = FinancingMain.class)// 指定启动类

如下所示:
项目运行过程中遇到的问题_第20张图片

你可能感兴趣的:(项目运行)