您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符

69 行
1.7KB

  1. def create_gradle_settings(repo: str) -> str:
  2. return """// Generated, do not edit
  3. rootProject.name = "gradle sync job"
  4. pluginManagement {
  5. repositories {
  6. maven {
  7. url=uri("http://""" + repo + """/releases")
  8. isAllowInsecureProtocol=true
  9. }
  10. }
  11. }
  12. """
  13. def create_gradle_build(kotlin_version: str, plugins: dict[str, str], packages: list[str], repo: str) -> str:
  14. return """// Generated, do not edit
  15. plugins {
  16. """ + f'kotlin("jvm") version "{kotlin_version}"' + """
  17. """ + '\n '.join(f'id("{name}") version "{version}"' for name, version in plugins.items()) + """
  18. }
  19. repositories {
  20. maven {
  21. url=uri("http://""" + repo + """/releases")
  22. isAllowInsecureProtocol=true
  23. }
  24. }
  25. val deps = listOf<String>(
  26. """ + ',\n '.join(f'"{dep}"' for dep in sorted(packages)) + """
  27. ).flatMap {
  28. listOf(it, it + ":sources", it + ":javadoc")
  29. }.map {
  30. configurations.create(it.replace(':', '_')) {
  31. isCanBeResolved = true
  32. isCanBeConsumed = false
  33. } to it
  34. }
  35. dependencies {
  36. deps.forEach { (conf, dep) ->
  37. conf(dep)
  38. }
  39. }
  40. tasks.register("downloadDependencies") {
  41. val logger = getLogger()
  42. doLast {
  43. deps.forEach { (conf, dep) ->
  44. logger.warn("$conf")
  45. try {
  46. conf.files
  47. } catch (e: Exception) {
  48. if (dep.endsWith(":sources")) {
  49. logger.info("Package '$dep' has no sources")
  50. } else if (dep.endsWith(":javadoc")) {
  51. logger.info("Package '$dep' has no javadoc")
  52. } else {
  53. logger.info("Error while fetching '$dep': $e")
  54. }
  55. }
  56. }
  57. }
  58. }
  59. """