동일한 제품의 두 기능에 동일한 플러그인이 있으면 버전 한정자로 인해 충돌이 발생합니다.

S. Cambon

Tycho를 사용하여 여러 Eclipse 제품을 빌드합니다. 내 응용 프로그램의 기능에 따라 Jenkins에 일하고 있으며 유틸리티와 제품에 대한 일이 있습니다.

다음 다이어그램은 내 설정을 설명합니다. 종속성

한 직업 ( 'A')에서 나는 다른 것들 사이에서 플러그인 ( 'a')을 만듭니다. 해당 버전에는 "한정자"자리 표시자가 있습니다. 이 플러그인은 각각 별도의 작업 ( 'B'및 'C')에 구축 된 관련없는 두 기능에 포함되어 있습니다. 이 두 작업은 특정 플러그인도 빌드합니다. 마지막으로 두 가지 기능을 사용하여 애플리케이션을 조합하는 작업 'D'가 있습니다.

Both features declare their dependency on the plugin with the special version "0.0.0", i.e. latest version. At compile time, each feature obtains the a.plugin and changes its qualifier. This leads to different qualifiers in each feature.

I sometimes experience the following error, leading my build to fail:

[ERROR] Cannot resolve project dependencies:
[ERROR]   Software being installed: product.d 1.0.0
[ERROR]   Only one of the following can be installed at once: [plugin.a 1.2.3.1234, plugin.a 1.2.3.5678]
[ERROR]   Cannot satisfy dependency: product.d 1.0.0 depends on: feature.b 0.0.0
[ERROR]   Cannot satisfy dependency: product.d 1.0.0 depends on: feature.c 0.0.0
[ERROR]   Cannot satisfy dependency: feature.b 1.0.0 depends on: plugin.a [1.2.3.1234]
[ERROR]   Cannot satisfy dependency: feature.c 1.0.0 depends on: plugin.a [1.2.3.5678]

Thus plugin.a being compiled only once, do you know what I could do to have my product resolve this false conflict?

oberlies

A feature build doesn't change the qualifier of the plug-ins; it uses the plug-in which is available in the target platform without modification. The feature build only modifies files which go into the feature JAR, e.g. it replaces the version in reference to plug-ins with the available version in the feature.xml.

So in case of the described failure in the build of job D, your feature build jobs have seen different versions of plugin.a. This e.g. happens when your jobs build in this order: A (builds plugin.a_1.2.3.1234) - B - A (builds plugin.a_1.2.3.5678) - C - D. When this happens, there is no way that the build of the product (job D) can succeed.

But really the question you should be asking yourself is if you really need this complicated setup. A feature build is close to a NOP in Tycho, so you could just always build your features together with the plug-in(s) in job A.

예를 들어 기능 중 하나의 플러그인 포함을 플러그인 참조로 대체하거나 SCM 기반 재현 가능한 빌드 한정자를 사용하여 (매우 고급!) 복잡한 작업 설정이 안정적으로 작동하도록하는 잠재적 인 방법이 있습니다. 그러나 이러한 모든 옵션은 귀하의 경우에 노력할 가치가없는 것 같습니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

Related 관련 기사

뜨겁다태그

보관