1. 问题描述
因为Azkaban源码中默认的代码,端口被公司封掉,使用了另外的端口,由于要在内网服务器上部署任务,跑失败了,要发送邮件(报警),所以需要重新编译Azkaban源码。
创建失败
创建成功,自己自适应端口
2.编译过程
第一步:
在 azkaban-common/src/main/java/azkaban/utils/EmailMessage.java中的sendEmail()方法里,加入如下代码:
Security.addProvider(new com.sun.net.ssl.internal.ssl.Provider());
final String SSL_FACTORY = "javax.net.ssl.SSLSocketFactory";
props.setProperty("mail.smtp.socketFactory.class", SSL_FACTORY);
props.setProperty("mail.smtp.socketFactory.fallback", "false");
props.setProperty("mail.smtp.socketFactory.port", "465");
这个时候会报错,Security识别不了,要在这个类中引入import java.security.*; 即可解决。
如果报错 Run with --stacktrace option……:
尝试下面的方法
1.vim azkaban-common/src/main/java/azkaban/jobExecutor/ProcessJob.java
2.将final boolean isExecuteAsUser = this.sysProps.getBoolean(EXECUTE_AS_USER, true);
true修改false
第二步:
./gradlew build installDist
3.编译成功