我在解决来自 .target 文件的依赖项的 Maven/Tycho 机制方面存在问题。我遵循了https://wiki.eclipse.org/Tycho/Target_Platform#Target_files上的信息,但没有得到预期的结果。以下是一些事实:
目标文件:
<target name="Eclipse Kepler Target" sequenceNumber="1424335573">
<locations>
<location includeMode="slicer" includeAllPlatforms="false" includeSource="false" includeConfigurePhase="false" type="InstallableUnit">
<unit id="org.eclipse.sdk.feature.group" version="0.0.0"/>
<unit id="org.eclipse.equinox.executable.feature.group" version="0.0.0"/>
<unit id="org.eclipse.equinox.p2.sdk.feature.group" version="0.0.0"/>
<unit id="org.eclipse.emf.sdk.feature.group" version="0.0.0"/>
<unit id="org.eclipse.emf.transaction.sdk.feature.group" version="0.0.0"/>
<unit id="org.eclipse.emf.validation.sdk.feature.group" version="0.0.0"/>
<unit id="org.eclipse.emf.workspace.feature.group" version="0.0.0"/>
<unit id="org.eclipse.emf.workspace.source.feature.group" version="0.0.0"/>
<unit id="org.eclipse.emf.eef.sdk-feature.feature.group" version="0.0.0"/>
<unit id="org.eclipse.draw2d.sdk.feature.group" version="0.0.0"/>
<unit id="org.eclipse.gef.sdk.feature.group" version="0.0.0"/>
<unit id="org.eclipse.gmf.runtime.sdk.feature.group" version="0.0.0"/>
<unit id="org.eclipse.gmf.runtime.notation.sdk.feature.group" version="0.0.0"/>
<unit id="org.eclipse.acceleo.feature.group" version="0.0.0"/>
<unit id="org.eclipse.acceleo.source.feature.group" version="0.0.0"/>
<unit id="org.eclipse.ocl.feature.group" version="0.0.0"/>
<unit id="org.eclipse.ocl.source.feature.group" version="0.0.0"/>
<repository id="kepler" location="http://korvm016.apac.bosch.com/updatesites/thirdparty/eclipse_4.3_kepler/"/>
</location>
<location includeMode="slicer" includeAllPlatforms="false" includeSource="false" includeConfigurePhase="false" type="InstallableUnit">
<unit id="com.google.inject" version="0.0.0"/>
<unit id="com.google.inject.source" version="0.0.0"/>
<unit id="com.google.inject.assistedinject.source" version="0.0.0"/>
<unit id="com.google.inject.assistedinject" version="0.0.0"/>
<unit id="com.google.inject.multibindings.source" version="0.0.0"/>
<unit id="com.google.inject.multibindings" version="0.0.0"/>
<unit id="com.google.guava" version="0.0.0"/>
<unit id="com.google.guava.source" version="0.0.0"/>
<unit id="javax.activation" version="0.0.0"/>
<unit id="javax.activation.source" version="0.0.0"/>
<unit id="org.aopalliance" version="0.0.0"/>
<unit id="org.apache.commons.cli" version="0.0.0"/>
<unit id="org.apache.commons.cli.source" version="0.0.0"/>
<unit id="org.apache.commons.collections" version="0.0.0"/>
<unit id="org.apache.commons.collections.source" version="0.0.0"/>
<unit id="org.apache.commons.exec" version="0.0.0"/>
<unit id="org.apache.commons.exec.source" version="0.0.0"/>
<unit id="org.apache.commons.httpclient" version="0.0.0"/>
<unit id="org.apache.commons.httpclient.source" version="0.0.0"/>
<unit id="org.apache.commons.io" version="0.0.0"/>
<unit id="org.apache.commons.io.source" version="0.0.0"/>
<unit id="org.apache.commons.lang" version="0.0.0"/>
<unit id="org.apache.commons.lang.source" version="0.0.0"/>
<unit id="org.junit" version="0.0.0"/>
<unit id="org.junit.source" version="0.0.0"/>
<unit id="org.hamcrest.core.source" version="0.0.0"/>
<unit id="org.hamcrest.core" version="0.0.0"/>
<unit id="org.hamcrest.generator.source" version="0.0.0"/>
<unit id="org.hamcrest.generator" version="0.0.0"/>
<unit id="org.hamcrest.integration.source" version="0.0.0"/>
<unit id="org.hamcrest.integration" version="0.0.0"/>
<unit id="org.hamcrest.library.source" version="0.0.0"/>
<unit id="org.hamcrest.library" version="0.0.0"/>
<unit id="org.hamcrest.text.source" version="0.0.0"/>
<unit id="org.hamcrest.text" version="0.0.0"/>
<unit id="org.hamcrest" version="0.0.0"/>
<unit id="org.mockito" version="0.0.0"/>
<unit id="org.mockito.source" version="0.0.0"/>
<unit id="org.objenesis" version="0.0.0"/>
<unit id="org.objenesis.source" version="0.0.0"/>
<unit id="ch.qos.logback.classic" version="0.0.0"/>
<unit id="ch.qos.logback.classic.source" version="0.0.0"/>
<unit id="ch.qos.logback.core" version="0.0.0"/>
<unit id="ch.qos.logback.core.source" version="0.0.0"/>
<unit id="ch.qos.logback.slf4j" version="0.0.0"/>
<unit id="ch.qos.logback.slf4j.source" version="0.0.0"/>
<unit id="org.slf4j.api" version="0.0.0"/>
<unit id="org.slf4j.api.source" version="0.0.0"/>
<repository id="orbit" location="http://korvm016.apac.bosch.com/updatesites/thirdparty/orbit-buildrepo-R20140525021250/"/>
</location>
</locations>
</target>
目标模块的 pom 文件:
<?xml version="1.0" encoding="UTF-8"?>
<project
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<modelVersion>4.0.0</modelVersion>
<groupId>com.etas.congra.releng</groupId>
<artifactId>com.etas.congra.releng.targetplatform</artifactId>
<packaging>eclipse-target-definition</packaging>
</project>
我在这里没有版本,因为我在网上找到了一个页面,它讲述了 eclipse-target-packaging 的 pom 中的版本不起作用,实际上,指定版本导致无法解决以下问题用于所有其他 maven 模块的父 pom 中的配置:
<plugins>
<plugin>
<groupId>org.eclipse.tycho</groupId>
<artifactId>target-platform-configuration</artifactId>
<version>${tycho-version}</version>
<configuration>
<target>
<artifact>
<groupId>com.etas.congra.releng</groupId>
<artifactId>com.etas.congra.releng.targetplatform</artifactId>
<relativePath>../../releng/com.etas.congra.releng.targetplatform/pom.xml</relativePath>
</artifact>
</target>
</configuration>
</plugin>
</plugins>
有了这个,我在 Maven 构建期间收到以下错误消息:
[INFO] Scanning for projects...
[INFO] Computing target platform for MavenProject: com.etas.congra.releng:com.etas.congra.log:0.1.0-SNAPSHOT @ D:\ConGra_IDE_Luna_win64\git\congra\plugins\com.etas.congra.log\pom.xml
[INFO] Resolving dependencies of MavenProject: com.etas.congra.releng:com.etas.congra.log:0.1.0-SNAPSHOT @ D:\ConGra_IDE_Luna_win64\git\congra\plugins\com.etas.congra.log\pom.xml
[INFO] Cannot complete the request. Generating details.
[INFO] Cannot complete the request. Generating details.
[INFO] {osgi.ws=win32, osgi.os=win32, osgi.arch=x86_64, org.eclipse.update.install.features=true}
[ERROR] Cannot resolve project dependencies:
[ERROR] Software being installed: com.etas.congra.log 0.1.0.qualifier
[ERROR] Missing requirement: com.etas.congra.log 0.1.0.qualifier requires 'bundle ch.qos.logback.classic 1.0.7' but it could not be found
[ERROR]
尽管目标在 Eclipse 工作区中正常工作,并且如果目标文件中提到的所有存储库都表示为 pom 文件中的存储库标记,但它无法从目标文件解析对工件的依赖关系,构建也可以工作。
有人知道我的配置有什么问题吗?