여러 환경에 여러 netbeans 프로젝트를 빌드하고 배포하는 것과 관련된 많은 기능을 래핑하는 복잡한 gradle 스크립트가 있습니다.
스크립트는 매우 잘 작동하지만 본질적으로 프로젝트 및 환경 정보를 포함하는 6 개의 맵을 통해 구성됩니다.
작업을 다른 파일로 추상화하여 간단한 빌드 파일에 맵을 정의하고 다른 파일에서 작업을 가져올 수 있습니다. 이러한 방식으로 여러 프로젝트에 동일한 핵심 작업을 사용하고 간단한 맵 세트로 해당 프로젝트를 구성 할 수 있습니다.
누구든지 Ant의 작업과 비슷한 방식으로 gradle 파일을 다른 파일로 가져올 수있는 방법을 알려줄 수 있습니까? 지금까지 Gradle의 문서를 아무 소용이 없었습니다.
추가 정보
아래 톰의 답변 후, 나는 내가 의미하는 바를 정확히 밝히려고 노력할 것이라고 생각했습니다.
기본적으로 여러 하위 프로젝트를 실행하는 gradle 스크립트가 있습니다. 그러나 하위 프로젝트는 모두 Netbeans 프로젝트이며 자체 ant 빌드 스크립트와 함께 제공되므로 각 프로젝트를 호출하는 작업이 gradle에 있습니다.
내 문제는 파일 상단에 다음과 같은 구성이 있다는 것입니다.
projects = [
[name:"MySubproject1", shortname: "sub1", env:"mainEnv", cvs_module="mod1"],
[name:"MySubproject2", shortname: "sub2", env:"altEnv", cvs_module="mod2"]
]
그런 다음 다음과 같은 작업을 생성합니다.
projects.each({
task "checkout_$it.shortname" << {
// Code to for example check module out from cvs using config from 'it'.
}
})
나는 이러한 종류의 작업 생성 스 니펫을 많이 가지고 있으며 모두 일반적입니다. 프로젝트 목록의 구성에 전적으로 의존합니다.
그래서 제가 원하는 것은 이것을 별도의 스크립트에 넣고 다음과 같은 방식으로 가져 오는 방법입니다.
projects = [
[name:"MySubproject1", shortname: "sub1", env:"mainEnv", cvs_module="mod1"],
[name:"MySubproject2", shortname: "sub2", env:"altEnv", cvs_module="mod2"]
]
import("tasks.gradle") // This will import and run the script so that all tasks are generated for the projects given above.
따라서이 예제에서 tasks.gradle은 모든 일반 작업 생성 코드를 포함하고 기본 build.gradle 파일에 정의 된 프로젝트에 대해 실행됩니다. 이러한 방식으로 tasks.gradle은 Netbeans ant 빌드 파일이있는 여러 하위 프로젝트로 구성된 모든 대규모 프로젝트에서 사용할 수있는 파일입니다.
apply from
즉시 외부 작업을 실행합니다. 이것은 실행 로직에서 바람직하지 않을 수 있습니다 (즉, 즉시가 아니라 원할 때 작업을 실행하고 싶습니다).
apply from
즉시 외부 작업을 실행합니다. 오해하지 마십시오. 외부 작업은 실행되지 않고 구성됩니다.