Program Club

_를 어떻게 제거합니까?

proclub 2020. 11. 21. 08:55
반응형

_를 어떻게 제거합니까? 간단한 빌드 도구로 빌드 + 게시 된 아티팩트의 postfix?


간단한 빌드 도구를 사용하여 몇 가지 Java 전용 프로젝트를 빌드하고 있습니다. 예를 들어 sbt publish-local을 사용하여 프로젝트에서 아티팩트를 게시하면 결과 아티팩트의 이름에 Scala 버전이 추가됩니다. Scala 프로젝트를 사용하면 이것은 의미가 있지만 Java 전용 프로젝트이므로 그렇지 않습니다. Scala 버전의이 접미사를 어떻게 비활성화합니까? 아니면 할 수 있습니까?

참고로 sbt 0.11.1, Scala 2.9.1 및 .sbt 파일을 빌드 구성에 사용하고 있습니다 (전체 프로젝트 구성으로 이동해도 문제가되지 않습니다).


Artifact.artifactName이 구현되고 궁극적으로 사용되는 방법을 살펴본 후 이것을 끄는 방법은 crossPath 설정에 대해 false를 지정하는 것 같습니다. 이것은 xsbt wiki의 빠른 구성 예제 중 하나에 설명되어 있습니다.

http://www.scala-sbt.org/release/docs/Examples/Quick-Configuration-Examples

// disable using the Scala version in output paths and artifacts
crossPaths := false

이것은 기본 아티팩트 수정 아래의 xsbt 위키에 문서화되어 있습니다. 해당 페이지에서 :

예를 들어 분류 자 ​​또는 교차 경로없이 최소 이름을 생성하려면 다음을 수행하십시오.

artifactName := { (sv: ScalaVersion, module: ModuleID, artifact: Artifact) =>
  artifact.name + "-" + module.revision + "." + artifact.extension
}

나는이 질문이 오래되었다는 것을 알고 있지만, 나 자신에게 똑같은 질문을 해왔고, 실제로 이것을 할 수있는 매우 간단한 방법이 있습니다. 당신이해야 할 일은 %대신에 의존성을 선언하는 것입니다 %%.

% : 제공 한 문자열에서 Ivy 모듈 ID를 구성하는 데 사용되는 방법입니다.

%% : groupID 뒤에 사용하면 프로젝트의 Scala 버전 (예 : _2.10)이 아티팩트 이름 끝에 자동으로 추가됩니다.

http://alvinalexander.com/scala/sbt-how-to-manage-project-dependencies-in-scala


허용 대답은 엄격하게 정확 동안, 당신이해야 결코 설정하지 crossVersionsfalse공개 된 스칼라 유물에. 임베디드 스칼라 버전은 다른 버전의 Scala 라이브러리가 바이너리와 호환되지 않을 수 있기 때문에 중요한 호환성 기능입니다.

만 설정 crossVersionsfalse엄격하게 자바입니다 그 문제들처럼, 프로젝트.

참고 URL : https://stackoverflow.com/questions/8288859/how-do-you-remove-the-scala-version-postfix-from-artifacts-builtpublished-wi

반응형