2016-06-03 3 views
0

하나의 라이브러리가 필요한 프로젝트가 있습니다. 이 라이브러리는 이미 로컬 repro에 있습니다. 이 같은Maven : pom.xml 의존성보다 매니페스트 의존성을 선호합니다

<?xml version="1.0" encoding="UTF-8"?> 
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 
    <parent> 
     <groupId>de.mygui</groupId> 
     <artifactId>de.mygui.app.releng</artifactId> 
     <relativePath>../de.mygui.app.releng/pom.xml</relativePath> 
     <version>1.0.0-SNAPSHOT</version> 
    </parent> 
    <groupId>de.mygui</groupId> 
    <artifactId>de.mygui.map</artifactId> 
    <version>1.0.0-SNAPSHOT</version> 
    <packaging>eclipse-plugin</packaging> 
    <dependencies> 
     <dependency> 
     <groupId>common</groupId> 
     <artifactId>my.util.geo</artifactId> 
     <version>1.0.0</version> 
     </dependency> 
    </dependencies> 
</project> 

및 프로젝트 매니페스트 외모 :

Manifest-Version: 1.0 
Bundle-ManifestVersion: 2 
Bundle-Name: gui map 
Bundle-SymbolicName: de.mygui.map;singleton:=true 
Bundle-Version: 1.0.0.qualifier 
Bundle-RequiredExecutionEnvironment: JavaSE-1.8 
Import-Package: my.util.geo;version="2.0.0" 

my.util.geo 매니페스트 :

Manifest-Version: 1.0 
Bundle-ManifestVersion: 2 
Bundle-Name: Geo 
Bundle-SymbolicName: my.util.geo 
Bundle-Version: 1.0.0 
Bundle-RequiredExecutionEnvironment: JavaSE-1.6 
Export-Package: my.util.geo 
Require-Bundle: org.proj4j;bundle-version="0.1.0" 

나는이 같은이 lib 디렉토리에 따라 그 pom.xml을 통해 프로젝트를 말했다 부모 POM을 실행하여 모든 프로젝트를 컴파일합니다. 다음 오류가 발생합니다.

[ERROR] Cannot resolve project dependencies: 
[ERROR] Software being installed: de.mygui.app.feature.feature.group 1.0.0.qualifier 
[ERROR] Missing requirement: de.mygui.map 1.0.0.qualifier requires 'package my.util.geo 2.0.0' but it could not be found 
[ERROR] Cannot satisfy dependency: de.mygui.app.feature.feature.group 1.0.0.qualifier depends on: de.mygui.map 0.0.0 
[ERROR] 
[ERROR] See http://wiki.eclipse.org/Tycho/Dependency_Resolution_Troubleshooting for help. 
[ERROR] Cannot resolve dependencies of MavenProject: de.mygui:de.mygui.app.feature:1.0.0-SNAPSHOT @ /home/myuser/dev/gui/de.mygui.app.feature/pom.xml: See log for details -> [Help 1] 
org.apache.maven.MavenExecutionException: Cannot resolve dependencies of MavenProject: de.mygui:de.mygui.app.feature:1.0.0-SNAPSHOT @ /home/myuser/dev/gui/de.mygui.app.feature/pom.xml 
    at org.eclipse.tycho.core.maven.TychoMavenLifecycleParticipant.afterProjectsRead(TychoMavenLifecycleParticipant.java:100) 
    at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:274) 
    at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:156) 
    at org.apache.maven.cli.MavenCli.execute(MavenCli.java:537) 
    at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:196) 
    at org.apache.maven.cli.MavenCli.main(MavenCli.java:141) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    at java.lang.reflect.Method.invoke(Method.java:483) 
    at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:289) 
    at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:229) 
    at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:415) 
    at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:356) 
Caused by: org.eclipse.tycho.artifacts.DependencyResolutionException: Cannot resolve dependencies of MavenProject: de.mygui:de.mygui.app.feature:1.0.0-SNAPSHOT @ /home/myuser/dev/gui/de.mygui.app.feature/pom.xml 
    at org.eclipse.tycho.p2.resolver.P2ResolverImpl.resolveDependencies(P2ResolverImpl.java:202) 
    at org.eclipse.tycho.p2.resolver.P2ResolverImpl.resolveDependencies(P2ResolverImpl.java:116) 
    at org.eclipse.tycho.p2.resolver.P2DependencyResolver.doResolveDependencies(P2DependencyResolver.java:367) 
    at org.eclipse.tycho.p2.resolver.P2DependencyResolver.resolveDependencies(P2DependencyResolver.java:335) 
    at org.eclipse.tycho.core.resolver.DefaultTychoResolver.resolveProject(DefaultTychoResolver.java:117) 
    at org.eclipse.tycho.core.maven.TychoMavenLifecycleParticipant.afterProjectsRead(TychoMavenLifecycleParticipant.java:95) 
    ... 13 more 
Caused by: org.eclipse.tycho.p2.util.resolution.ResolverException: See log for details 
    at org.eclipse.tycho.p2.util.resolution.ProjectorResolutionStrategy.resolve(ProjectorResolutionStrategy.java:88) 
    at org.eclipse.tycho.p2.util.resolution.AbstractResolutionStrategy.resolve(AbstractResolutionStrategy.java:42) 
    at org.eclipse.tycho.p2.resolver.P2ResolverImpl.resolveDependencies(P2ResolverImpl.java:195) 
    ... 18 more 

내게는 Maven이 먼저 매니페스트를 살펴본 후 POM에서 의존성을 찾습니다. 보시다시피 버전 번호를 my.util.geo으로 변경하여 매니페스트가 POM 전에 사용되었는지 확인하십시오. Manifest와 POM에서 동일한 버전을 사용하더라도 Maven은 여전히 ​​종속성을 해결할 수 없습니다.

이 문제를 해결하려면 어떻게해야합니까?

+0

는 당신이 우리''my.util.geo'' 라이브러리의 매니페스트 보여줄 수 필요한 모든 값을 포함하는 my.util.geo LIB 내 빌드 스크립트를 편집 할 필요가? –

+0

이 erros는''de.mygui.app.feature.feature.group''과 관련이있는 것으로 보이며, 이것을 우리에게 보여줄 수 있습니까? –

+0

@AlexandreCartapanis my.util.geo 매니페스트를 추가했습니다. 피쳐 그룹은 RCP E4 빌드 프로세스의 일부입니다. 나는 그 안타가 문제라고 생각하지 않는다. 며칠 전까지는 전체 빌드 프로세스가 작동했습니다. 당시 모든 필수 프로젝트 (fodlers)는 하나의 폴더에있었습니다. 하지만 이제는 그들을 분리하기 시작 했으므로 util 프로젝트는 Maven과 로컬 repro를 통해서만 접근 할 수 있습니다 – Westranger

답변

0

로컬 repro에 넣은 jar (my.util.geo)의 mainfestmaven archiverdefault manifest입니다. 그래서

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-jar-plugin</artifactId> 
    <version>2.1</version> 
    <configuration> 
     <archive> 
     <manifest> 
      <addClasspath>true</addClasspath> 
      <addDefaultImplementationEntries>true</addDefaultImplementationEntries> 
      <addDefaultSpecificationEntries>true</addDefaultSpecificationEntries> 
     </manifest> 
     <manifestEntries> 
      <Bundle-SymbolicName>${project.artifactId}</Bundle-SymbolicName> 
      <Bundle-Version>${project.version}</Bundle-Version> 
      <Bundle-ClassPath>.</Bundle-ClassPath> 
      <Export-Package>my.util.geo</Export-Package> 
     </manifestEntries> 
     </archive> 
    </configuration> 
</plugin> 
관련 문제