@@ -45,8 +45,6 @@ public class DingTalkRunListener extends RunListener<Run<?, ?>> {
45
45
46
46
private final DingTalkServiceImpl service = new DingTalkServiceImpl ();
47
47
48
- private final String rootPath = Jenkins .get ().getRootUrl ();
49
-
50
48
@ Override
51
49
public void onStarted (Run <?, ?> run , TaskListener listener ) {
52
50
DingTalkGlobalConfig globalConfig = DingTalkGlobalConfig .getInstance ();
@@ -241,11 +239,30 @@ private void send(Run<?, ?> run, TaskListener listener, NoticeOccasionEnum notic
241
239
242
240
// 项目信息
243
241
String projectName = job .getFullDisplayName ();
244
- String projectUrl = job .getAbsoluteUrl ();
242
+ String projectUrl = job .getUrl ();
243
+ try {
244
+ projectUrl = job .getAbsoluteUrl ();
245
+ } catch (IllegalStateException e ) {
246
+ DingTalkUtils .log (
247
+ listener ,
248
+ "Get Project URL error, %s "
249
+ + "Please set jenkins Root URL in [ System Configuration >> System >> Jenkins Location >> Jenkins URL ]" ,
250
+ e .toString ());
251
+ }
245
252
246
253
// 构建信息
247
254
String jobName = run .getDisplayName ();
248
- String jobUrl = rootPath + run .getUrl ();
255
+ String jobUrl = "" ;
256
+ try {
257
+ jobUrl = run .getAbsoluteUrl ();
258
+ } catch (IllegalStateException e ) {
259
+ DingTalkUtils .log (
260
+ listener ,
261
+ "Get job URL error, %s "
262
+ + "Please set jenkins Root URL in [ System Configuration >> System >> Jenkins Location >> Jenkins URL ]" ,
263
+ e .toString ());
264
+ }
265
+
249
266
String duration = run .getDurationString ();
250
267
BuildStatusEnum statusType = getBuildStatus (noticeOccasion );
251
268
0 commit comments