Aynı sorunu koştum ve bunu düzeltmek için Çoklu SCMS eklentisi çatal karar: (target/multiple-scms.hpi
bulunan) HPI dosyası oluşturmak için mvn
İsterseniz https://github.com/JakeStoeffler/multiple-scms-plugin
, sadece benim repo klonlamak ve çalıştırmak manuel olarak yükleyebilir ve Jenkins'e yükleyebilirsiniz. Yerine kendi verdiği yapardım lütfen doğrudan klon the original repo, MultiSCM.java
açsın, aşağıdaki gibi bir şeyle buildEnvVars()
yönteminde kodunu değiştirmek:
@Override
public void buildEnvVars(AbstractBuild<?,?> build, Map<String, String> env) {
// Add each SCM's env vars, appending indices where needed to avoid collisions
for (int i = 0; i < scms.size(); i++) {
try {
EnvVars currScmVars = new EnvVars();
scms.get(i).buildEnvVars(build, currScmVars);
for (Entry<String, String> entry : currScmVars.entrySet()) {
if (env.containsKey(entry.getKey())) {
// We have a collision; append the index of this SCM to the env var name
env.put(entry.getKey() + "_" + i, entry.getValue());
} else {
// No collision; just put the var as usual
env.put(entry.getKey(), entry.getValue());
}
}
}
catch(NullPointerException npe) {}
}
}
Umarım yorumlar yeterince açıklayıcı vardır. Temel olarak, orijinal koddaki hata, aynı ortam değişken adlarına sahip birden çok SCM'ye sahip olduğunuzda, değişkenlerin yinelenmekte oldukları şekilde üzerine yazılmasıdır. Bu yazımların önüne geçerek ve bunun yerine değişken adına bir dizin ekleyerek bu şekilde çalışırız.
İşte nasıl kullanılacağına ilişkin bir örnek: projemizin 3 Git SCMS yapılandırılmış varsa, şimdi tek tek env kullanarak her Git repo taahhüt son karmasını erişmek GIT_COMMIT
, GIT_COMMIT_1
ve GIT_COMMIT_2
vars olabilir. Eklenen indeksler, Jenkins'deki proje yapılandırmasında SCM'lerin sırasına karşılık gelir.
Açıkçası bu hızlı ve kirli bir çözümdür, ancak yapmam gerekeni yerine getirir. İhtiyaçlarınıza uyacak şekilde özelleştirmekten çekinmeyin.
Teşekkürler Bir göz atacağım. – Jason
Neden bu neden yukarı akış yukarı Jenkins için bir istek yapılmadı? – Will
@Will Birleştirilmiş - bkz. [PR] (https://github.com/jenkinsci/multiple-scms-plugin/pull/12). –