New Score :0
High Score :0
Run Best
NICE BUSINESS TYPE INDICATOR
3. 급전을 친구에게 빌렸는데 오늘이 돈을 주기로 한날.. 그런데 카드값을 내야하는 날도 오늘인데... 이걸 어쩌나...
4. 우리 회사는 중요한 의사 결정을 할때?
5. 열심히 일한 나를 위한 선물을 주고싶다. 어떤게 좋을까?
6. 은행에서 투자상품을 추천받았다. 어떤걸 가입하지?
7. 회사에서의 나는?
8. 꿈에서 깨어나니 20년 전으로 돌아갔다. 당신이 제일 먼저 하는일은?
9. 내가 인사 담당자라면 신규 입사자 채용 시 제일 중요하게 보는것은?
10. 회사에 정말 싫어하는 동료가 있다면?
11. 가난한 집의 가장이 되었다.. 자녀의 생일 날 선물은?
12. 평소 회사 출근 스타일은?
13.회사 체육대회 하는 날이다. 오늘 뭐하지?
14. 나의 업무 스타일은?
Project dependencies
한 프로젝트가 컴파일 클래스 경로에서 다른 프로젝트에서 생성 한 jar를 필요로한다면 어떨까요? 다른 프로젝트의 전이 종속성도 필요한 경우 어떻게해야합니까? 분명히 이것은 Java 다중 프로젝트 빌드의 매우 일반적인 사용 사례입니다. 프로젝트 종속성에서 언급했듯이 Gradle은 이에 대한 프로젝트 종속성을 제공합니다.
Example 1. Project dependencies
.
├── buildSrc
│ ...
├── api
│ ├── src
│ │ └──...
│ └── build.gradle.kts
├── services
│ └── person-service
│ ├── src
│ │ └──...
│ └── build.gradle.kts
├── shared
│ ├── src
│ │ └──...
│ └── build.gradle.kts
└── settings.gradle.kts
우리는 프로젝트, API 및 개인 서비스를 공유합니다. 개인 서비스 프로젝트는 다른 두 프로젝트에 종속됩니다. api 프로젝트는 공유 프로젝트에 종속되어 있습니다. 빌드 스크립트가 없으며 다른 빌드 스크립트에 의해 주입 된 것이 없습니다. : 구분 기호를 사용하여 프로젝트 경로를 정의합니다. 프로젝트 경로 정의에 대한 자세한 내용은 Settings.include(java.lang.String[])의 DSL 설명서를 참조하십시오.
settings.gradle.kts
rootProject.name = "dependencies-java"
include("api", "shared", "services:person-service")
buildSrc/src/main/kotlin/myproject.java-conventions.gradle.kts
plugins {
id("java")
}
group = "com.example"
version = "1.0"
repositories {
mavenCentral()
}
dependencies {
testImplementation("junit:junit:4.13")
}
api/build.gradle.kts
plugins {
id("myproject.java-conventions")
}
dependencies {
implementation(project(":shared"))
}
shared/build.gradle.kts
plugins {
id("myproject.java-conventions")
}
services/person-service/build.gradle.kts
plugins {
id("myproject.java-conventions")
}
dependencies {
implementation(project(":shared"))
implementation(project(":api"))
}
공유 빌드 논리는 프로젝트 종속성도 정의하는 하위 프로젝트의 빌드 스크립트에 적용되는 규칙 플러그인으로 추출됩니다. 프로젝트 종속성은 실행 종속성의 특수한 형태입니다. 다른 프로젝트가 먼저 빌드되고 다른 프로젝트의 클래스가있는 jar를 클래스 경로에 추가합니다. 또한 다른 프로젝트의 종속성을 클래스 경로에 추가합니다. gradle :api:compile을 트리거 할 수 있습니다. 먼저 공유 프로젝트가 빌드된 다음 API 프로젝트가 빌드됩니다. 프로젝트 종속성을 사용하면 부분적인 다중 프로젝트 빌드를 사용할 수 있습니다.
Depending on artifacts produced by another project
프로젝트 종속성은 모듈 간의 종속성을 모델링합니다. 효과적으로, 당신은 다른 프로젝트의 주요 출력에 의존한다고 말하고 있습니다. 일반적으로 JAR 파일 인 Java 기반 프로젝트에서.
때로는 다른 작업에서 생성된 출력에 의존해야 할 수 있습니다. 차례로, 바로 그 출력을 생성하기 위해 작업이 미리 실행되었는지 확인하고 싶을 것입니다. 한 프로젝트에서 다른 프로젝트로 작업 의존 관계를 선언하는 것은 이러한 종류의 관계를 모델링하는 좋지 않은 방법이며 불필요한 결합을 도입합니다. 이러한 종속성을 모델링하는 권장 방법은 출력을 생성하거나, "나가는" 아티팩트로 표시하거나, 소비 프로젝트에서 의존할 수 있는 기본 소스 집합의 출력에 추가하는 것입니다.
두 개의 하위 프로젝트 생산자와 소비자와 함께 다중 프로젝트 빌드에서 작업하고 있다고 가정 해 보겠습니다. 하위 프로젝트 생산자는 빌드 정보(예: 프로젝트 버전)가 포함된 속성 파일을 생성하는 buildInfo라는 작업을 정의합니다. 그런 다음 작업 공급자를 출력 파일에 매핑하면 Gradle이 자동으로 작업 종속 항목을 설정합니다.
Example 2. Task generating a property file containing build information
build.gradle.kts
plugins {
id("java-library")
}
version = "1.0"
val buildInfo by tasks.registering(BuildInfo::class) {
version.set(project.version.toString())
outputFile.set(layout.buildDirectory.file("generated-resources/build-info.properties"))
}
sourceSets {
main {
output.dir(buildInfo.map { it.outputFile.asFile.get().parentFile })
}
}
buildSrc/src/main/java/BuildInfo.java
public abstract class BuildInfo extends DefaultTask {
@Input
public abstract Property<String> getVersion();
@OutputFile
public abstract RegularFileProperty getOutputFile();
@TaskAction
public void create() throws IOException {
Properties prop = new Properties();
prop.setProperty("version", getVersion().get());
try (OutputStream output = new FileOutputStream(getOutputFile().getAsFile().get())) {
prop.store(output, null);
}
}
}
소비 프로젝트는 런타임에 속성 파일을 읽을 수 있어야 합니다. 생성 프로젝트에 대한 프로젝트 종속성을 선언하면 미리 속성을 만들고 런타임 클래스 경로에서 사용할 수 있습니다.
Example 3. Declaring a project dependency on the project producing the properties file
build.gradle.kts
dependencies {
runtimeOnly(project(":producer"))
}
위의 예에서 소비자는 이제 생산자 프로젝트의 출력에 대한 종속성을 선언합니다.
다른 프로젝트의 기본 출력 아티팩트에 따라 하나의 예일뿐입니다. Gradle에는 프로젝트간에 임의의 아티팩트를 공유하고 Gradle이 필요에 따라 빌드 할 수있는 가장 강력한 종속성 관리 엔진 중 하나가 있습니다. 자세한 내용은 프로젝트 간 출력 공유에 대한 섹션을 참조하세요.