Şu anda çok sayıda global malzeme içeren bir libs/commons.gradle dosyası oluşturmak için platform derlememizi modülerleştiriyorum. Buna paralel olarak geliştirdiğimiz yazılımın çeşitli dallarının paralel olarak gelişmesine ihtiyacım var ve tüm şubelerdeki tüm script dosyası değişikliklerini yaymaktan kaçınmak istiyoruz. commons.gradle İçinde 'gradle/üstünkörü/commons.gradle'Not: İçe aktarılan bir komut dosyasından nasıl bir 'def' diyebilirim?
Ben svnrevision işlevi tanımlayın:
itibaren geçerlidir:
Ben de "dan uygulamak" kullanılan lib dosyası ve bunu yüklemeye oluşturulur:...
def svnRevision = {
ISVNOptions options = SVNWCUtil.createDefaultOptions(true);
SVNClientManager clientManager = SVNClientManager.newInstance(options);
SVNStatusClient statusClient = clientManager.getStatusClient();
SVNStatus status = statusClient.doStatus(projectDir, false);
SVNRevision revision = status.getCommittedRevision();
return revision.getNumber().toString();
}
...
ben çağırıyorum ediyorum Benim de dahil olmak üzere build.gradle gelen g fonksiyonu:
...
task writeVersionProperties {
File f = new File(project.webAppDirName+'/WEB-INF/version.properties');
if (f.exists()) { f.delete(); }
f = new File(project.webAppDirName+'/WEB-INF/version.properties');
FileOutputStream os = new FileOutputStream(f);
os.write(("version="+svnRevision()).getBytes());
os.flush();
os.close();
}
...
Ama sonuna kadar:...
FAILURE: Build failed with an exception.
* Where:
Build $PATH_TO/build20.gradle
* What went wrong:
A problem occurred evaluating root project 'DEV_7.X.X_GRADLEZATION'.
> Could not find method svnRevision() for arguments [] on root project 'DEV_7.X.X_GRADLEZATION'.
...
Bu yüzden benim queston'um'dur: Bir komut dosyasında tanımlanan bir alt işlevi nasıl arayabilirim?
Herhangi bir yardım için teşekkür ederiz! http://www.gradle.org/docs/current/userguide/writing_build_scripts.html itibaren
bu benim için çalışır. çok teşekkürler! – gorefest