Nice programing

동일한 파일에서 프로젝트 이름 / 그룹 / 버전과 {source, target} 호환성을 설정하는 방법은 무엇입니까?

nicepro 2020. 10. 9. 12:24
반응형

동일한 파일에서 프로젝트 이름 / 그룹 / 버전과 {source, target} 호환성을 설정하는 방법은 무엇입니까?


내 프로젝트에 gradle 사용을 일반화하고 모든 곳에서 동일한 빌드 파일을 재사용하고 싶습니다. 불행히도 마이그레이션을 쉽게하기 위해 $ subject에 언급 된 속성을 단일 파일로 정의하는 데 어려움이 있습니다.

이것은 gradle 1.6입니다.

내가 시도한 것, 모든 시도에서 실패했습니다.

  • gradle.properties: 이름을 수정할 수 없습니다 (읽기 전용, a를 사용 settings.gradle하고 루트 프로젝트 이름을 재정의해야 합니다 !); {source,target}Compatibility고려되지 않음;
  • settings.gradle: 또한 {source,target}Compatibility고려되지 않습니다!

그렇다면 이것을 달성하는 올바른 방법은 무엇입니까? 내가 지금까지 시도한 것 gradle.properties:

group = something
name = whatever  # cannot do!
version = whatever
sourceCompatibility = whatever # not taken into account!

그리고 settings.gradle:

sourceCompatibility = "whatever";  # not taken into account!

편집 글쎄, "이름"문제는 해결할 수 없습니다. 나머지는 빌드 파일에 적용하는 다른 파일을 사용했습니다. "이름"처리는 정말 옳지 않습니다 : /

편집 2 이것은 이제 2014 및 gradle 1.12이며 문제는 여전히 해결되지 않았습니다 ...


gradle.properties :

theGroup=some.group
theName=someName
theVersion=1.0
theSourceCompatibility=1.6

settings.gradle :

rootProject.name = theName

build.gradle :

apply plugin: "java"

group = theGroup
version = theVersion
sourceCompatibility = theSourceCompatibility

비슷한 문제에 대한 해결책을 찾았습니다. Gradle 1.11 (2014 년 4 월 기준)을 사용하고 있습니다. 프로젝트 이름은 settings.gradle다음과 같이 파일 에서 직접 변경할 수 있습니다 .

  rootProject.name='YourNewName'

올바른 artifactId를 사용하여 저장소 (나를위한 플러그인이있는 Artifactory)에 업로드하는 작업을 처리합니다.


아티팩트 baseName을 설정하여 빌드 프로젝트 이름과 독립적이므로 원하는 것을 얻을 수 있습니다.

jar {
    baseName "core"
}

내가 실행할 때이 속성 세트로, 내 프로젝트 이름이 "foo는"경우에도 gradle install, 이슈는 이름으로 게시 core대신 foo.


분명히 이것은 이와 settings.gradle같은 것으로 가능할 것 입니다.

rootProject.name = 'someName'
gradle.rootProject {
    it.sourceCompatibility = '1.7'
}

최근에 프로젝트를 사용할 수있을 때 나중에 호출 될 클로저를 사용하여 프로젝트 속성을 설정할 수 있다는 조언을 받았습니다.


Gradle Kotlin DSL과 함께 buildSrc 사용 여기에서 전체 작동 예제를 참조 하십시오. GitHub daggerok / spring-fu-jafu-example buildSrc / src / main / java / Globals.kt

참고 URL : https://stackoverflow.com/questions/17262856/how-to-set-the-project-name-group-version-plus-source-target-compatibility-in

반응형