in lib/generator.js [119:160]
async visitPom() {
var entities = new Entities();
var targetFile = path.join(this.pomOutputDir, 'pom.xml');
let pomName = 'pom.xml';
if (this.exec) {
pomName = 'pomWithMain.xml';
}
var pomFile = fs.readFileSync(path.join(__dirname, '../template', pomName));
var dependenciesClass = [];
Object.keys(this.imports).forEach((key) => {
let dependency = this.imports[key].release.split(':');
if (dependency[1].startsWith('aliyun-gateway-')) {
if (!dependenciesClass.includes(`${dependency[0]}:${dependency[1]}:` + '${service.version}')) {
dependenciesClass.push(`${dependency[0]}:${dependency[1]}:` + '${service.version}');
}
} else if (dependency[1] !== 'darabonba-java-core') {
dependenciesClass.push(this.imports[key].release);
}
});
const json = await parse(pomFile);
if (!json.project.dependencies || !json.project.dependencies[0].dependency) {
json.project.dependencies = [{ dependency: [] }];
}
dependenciesClass.forEach((value) => {
if (value) {
let dependency = value.split(':');
var dependencyObject = {};
dependencyObject.groupId = dependency[0];
dependencyObject.artifactId = dependency[1];
dependencyObject.version = dependency[2];
json.project.dependencies[0].dependency.push(dependencyObject);
}
});
const builder = new xml2js.Builder();
let newPom = builder.buildObject(json);
if (this.exec) {
let mainClassPath = this.package + '.' + (this.className || 'DefaultAsyncClient');
newPom = newPom.split('${mainClass}').join(mainClassPath);
}
newPom = render(newPom, this.packageInfo);
save(targetFile, entities.decode(newPom));
}