새로운 실행 파일을 만들지 않고 특정 라이브러리를 새로운 버전의 라이브러리로 대체 할 수있는 maven을 사용하여 실행 가능한 jar를 생성 할 수 있습니까?라이브러리를 교체 할 수있는 maven으로 실행 파일 jar를 생성하십시오.
0
A
답변
1
예, 당신이 정의한 provided
dependency 같은해야
<dependency>
<groupId>group-a</groupId>
<artifactId>artifact-b</artifactId>
<version>[1.0,)</version>
<type>bar</type>
<scope>provided</scope>
</dependency>
그리고 실행할 때 의존성이 응용 프로그램 클래스 경로에 사용할 수 있는지 확인합니다. 예를 들어 java 명령을 사용하여 실행 가능한 jar를 실행하면 다음과 같습니다.
java -jar MyExecutableJar.jar -cp /path/to/my/library.jar
그런 다음 실행 가능한 jar를 빌드하고 실행할 수 있습니다. 아니이 방법을 사용하여 몇 가지 단점이 있습니다 :
- 당신의 당신이 당신의 항아리를 실행할 수 있습니다
- 메이븐 의존성의 버전을 알 수 없습니다 때 라이브러리가 클래스 경로에 있는지 확인해야합니다 사용하면 빌드 재현성이 떨어집니다.
- Maven은 각 종속성에 버전이 있어야합니다. 내 예제에서는
[1.0,)
을 사용하여 Maven에 버전 1.x 이상이 필요하다고 말하면 컨텍스트에 맞게 조정할 수 있습니다. 당신의 항아리 말했다되고 그건
을 다시 컴파일 할 것이 아니라 현재의 JAR와 호환되지 않는 방식으로 라이브러리의 API 변경, 당신은 선택의 여지가없는 경우
좀 더 자세한 내용을 제공하면 더 자세히 설명하겠습니다.
+0
나와 내 동료 (다른 회사)가 응용 프로그램의 다른 부분에서 작동합니다. 나는 GUI에서 일하고 있으며 그는 응용 프로그램을 위해 구축하고있는 라이브러리를 개선하고 있습니다. 그는 그가 그것을 보내야만하는 새로운 항아리를 만들지 않고 그의 변화로 응용 프로그램을 테스트 할 수 있도록 요구했습니다. – Yupp
응용 프로그램 디렉토리의'lib' 폴더에 라이브러리를 보관하고 클래스 경로로 버전 번호가 아닌 하나의 jar가 아니라 lib 디렉토리를 가질 수 있습니다. (jar 파일의 버전 번호를 제거하는 것은 약간은 알 수 없습니다.) –