2

我为多个插件、一个特性、一个站点和一个在pom.xmls.

我可以从 Eclipse IDE 中运行我的应用程序。此外,一个mvn clean package构建就好了。

但是,当我添加一个需要的插件ca.odell.glazedlists(也在我的目标定义中)时,我仍然可以从 IDE 中运行它,但mvn clean package构建失败。有什么想法该怎么做?Maven 输出和 pom.xml 如下。

Maven 输出

[INFO] Computing target platform for MavenProject: lumo:microsoftsqlserver:0.0.1-SNAPSHOT @ D:\Java7\lumoE4Workspace\microsoftsqlserver\pom.xml
[INFO] Fetching p2.index from http://download.eclipse.org/releases/kepler/ (0B at 0B/s)
[INFO] Fetching p2.index from http://download.eclipse.org/releases/kepler/ (128B at 0B/s)
[INFO] 1 operation remaining.
[INFO] Adding repository http://download.eclipse.org/releases/kepler
[INFO] Fetching p2.index from http://download.eclipse.org/releases/kepler/201306260900/ (0B at 0B/s)
[INFO] 1 operation remaining.
[INFO] Fetching p2.index from http://download.eclipse.org/releases/kepler/201306260900/ (365B at 0B/s)
[INFO] Fetching p2.index from http://download.eclipse.org/technology/epp/packages/kepler/ (0B at 0B/s)
[INFO] 1 operation remaining.
[INFO] Fetching p2.index from http://download.eclipse.org/technology/epp/packages/kepler/ (116B at 0B/s)
[INFO] Fetching p2.index from http://download.eclipse.org/releases/kepler/ (0B at 0B/s)
[INFO] 1 operation remaining.
[INFO] Fetching p2.index from http://download.eclipse.org/releases/kepler/ (128B at 0B/s)
[INFO] Adding repository http://download.eclipse.org/releases/kepler
[INFO] Fetching p2.index from http://download.eclipse.org/releases/kepler/201306260900/ (0B at 0B/s)
[INFO] 1 operation remaining.
[INFO] Fetching p2.index from http://download.eclipse.org/releases/kepler/201306260900/ (365B at 0B/s)
[INFO] Fetching p2.index from http://download.eclipse.org/technology/epp/packages/kepler/ (0B at 0B/s)
[INFO] 1 operation remaining.
[INFO] Fetching p2.index from http://download.eclipse.org/technology/epp/packages/kepler/ (116B at 0B/s)
[WARNING] Target location type: Directory is not supported
[WARNING] Target location type: Profile is not supported
[WARNING] Target location type: Directory is not supported
[WARNING] De-selecting bundles in a target definition file is not supported. See http://wiki.eclipse.org/Tycho_Messages_Explained#Target_File_Include_Bundles for alternatives.
[INFO] Resolving dependencies of MavenProject: lumo:microsoftsqlserver:0.0.1-SNAPSHOT @ D:\Java7\lumoE4Workspace\microsoftsqlserver\pom.xml
[INFO] Resolving class path of MavenProject: lumo:microsoftsqlserver:0.0.1-SNAPSHOT @ D:\Java7\lumoE4Workspace\microsoftsqlserver\pom.xml
[INFO] Computing target platform for MavenProject: lumo:org.eclipse.gemini.dbaccess.microsoftsqlserver:0.0.1-SNAPSHOT @ D:\Java7\lumoE4Workspace\org.eclipse.gemini.dbaccess.microsoftsqlserver\pom.xml
[INFO] Resolving dependencies of MavenProject: lumo:org.eclipse.gemini.dbaccess.microsoftsqlserver:0.0.1-SNAPSHOT @ D:\Java7\lumoE4Workspace\org.eclipse.gemini.dbaccess.microsoftsqlserver\pom.xml
[INFO] Resolving class path of MavenProject: lumo:org.eclipse.gemini.dbaccess.microsoftsqlserver:0.0.1-SNAPSHOT @ D:\Java7\lumoE4Workspace\org.eclipse.gemini.dbaccess.microsoftsqlserver\pom.xml
[INFO] Computing target platform for MavenProject: lumo:lumo.settings:0.0.1-SNAPSHOT @ D:\Java7\lumoE4Workspace\lumo.settings\pom.xml
[INFO] Resolving dependencies of MavenProject: lumo:lumo.settings:0.0.1-SNAPSHOT @ D:\Java7\lumoE4Workspace\lumo.settings\pom.xml
[INFO] Resolving class path of MavenProject: lumo:lumo.settings:0.0.1-SNAPSHOT @ D:\Java7\lumoE4Workspace\lumo.settings\pom.xml
[INFO] Computing target platform for MavenProject: lumo:lumo.components:0.0.1-SNAPSHOT @ D:\Java7\lumoE4Workspace\lumo.components\pom.xml
[INFO] Resolving dependencies of MavenProject: lumo:lumo.components:0.0.1-SNAPSHOT @ D:\Java7\lumoE4Workspace\lumo.components\pom.xml
[INFO] Resolving class path of MavenProject: lumo:lumo.components:0.0.1-SNAPSHOT @ D:\Java7\lumoE4Workspace\lumo.components\pom.xml
[INFO] Computing target platform for MavenProject: lumo:lumo.osgi.service.dialog:0.0.1-SNAPSHOT @ D:\Java7\lumoE4Workspace\lumo.osgi.service.dialog\pom.xml
[INFO] Resolving dependencies of MavenProject: lumo:lumo.osgi.service.dialog:0.0.1-SNAPSHOT @ D:\Java7\lumoE4Workspace\lumo.osgi.service.dialog\pom.xml
[INFO] Resolving class path of MavenProject: lumo:lumo.osgi.service.dialog:0.0.1-SNAPSHOT @ D:\Java7\lumoE4Workspace\lumo.osgi.service.dialog\pom.xml
[INFO] Computing target platform for MavenProject: lumo:lumo.osgi.service.dialog.impl:0.0.1-SNAPSHOT @ D:\Java7\lumoE4Workspace\lumo.osgi.service.dialog.impl\pom.xml
[INFO] Resolving dependencies of MavenProject: lumo:lumo.osgi.service.dialog.impl:0.0.1-SNAPSHOT @ D:\Java7\lumoE4Workspace\lumo.osgi.service.dialog.impl\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, org.eclipse.update.install.features=true}
[ERROR] Cannot resolve project dependencies:
[ERROR]   Software being installed: lumo.osgi.service.dialog.impl 0.0.1.qualifier
[ERROR]   Missing requirement: lumo.core.runtime 0.0.1.qualifier requires 'bundle ca.odell.glazedlists 1.9.0' but it could not be found
[ERROR]   Cannot satisfy dependency: lumo.osgi.service.dialog.impl 0.0.1.qualifier depends on: bundle lumo.core.runtime 0.0.1
[ERROR] 
[ERROR] Internal error: java.lang.RuntimeException: "No solution found because the problem is unsatisfiable.": ["Unable to satisfy dependency from lumo.core.runtime 0.0.1.qualifier to bundle ca.odell.glazedlists 1.9.0.", "Unable to satisfy dependency from org.eclipse.nebula.widgets.nattable.extension.glazedlists 1.0.1.201307031725 to package ca.odell.glazedlists 0.0.0.", "Unable to satisfy dependency from org.eclipse.nebula.widgets.nattable.extension.glazedlists 1.0.1.201307031725 to package ca.odell.glazedlists.event 0.0.0.", "Unable to satisfy dependency from org.eclipse.nebula.widgets.nattable.extension.glazedlists 1.0.1.201307031725 to package ca.odell.glazedlists.gui 0.0.0.", "Unable to satisfy dependency from org.eclipse.nebula.widgets.nattable.extension.glazedlists 1.0.1.201307031725 to package ca.odell.glazedlists.matchers 0.0.0.", "Unable to satisfy dependency from org.eclipse.nebula.widgets.nattable.extension.glazedlists 1.0.1.201307031725 to package ca.odell.glazedlists.util.concurrent 0.0.0.", "No solution found because the problem is unsatisfiable."] -> [Help 1]
org.apache.maven.InternalErrorException: Internal error: java.lang.RuntimeException: "No solution found because the problem is unsatisfiable.": ["Unable to satisfy dependency from lumo.core.runtime 0.0.1.qualifier to bundle ca.odell.glazedlists 1.9.0.", "Unable to satisfy dependency from org.eclipse.nebula.widgets.nattable.extension.glazedlists 1.0.1.201307031725 to package ca.odell.glazedlists 0.0.0.", "Unable to satisfy dependency from org.eclipse.nebula.widgets.nattable.extension.glazedlists 1.0.1.201307031725 to package ca.odell.glazedlists.event 0.0.0.", "Unable to satisfy dependency from org.eclipse.nebula.widgets.nattable.extension.glazedlists 1.0.1.201307031725 to package ca.odell.glazedlists.gui 0.0.0.", "Unable to satisfy dependency from org.eclipse.nebula.widgets.nattable.extension.glazedlists 1.0.1.201307031725 to package ca.odell.glazedlists.matchers 0.0.0.", "Unable to satisfy dependency from org.eclipse.nebula.widgets.nattable.extension.glazedlists 1.0.1.201307031725 to package ca.odell.glazedlists.util.concurrent 0.0.0.", "No solution found because the problem is unsatisfiable."]
    at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:168)
    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(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:290)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:230)
    at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:409)
    at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:352)
Caused by: java.lang.RuntimeException: "No solution found because the problem is unsatisfiable.": ["Unable to satisfy dependency from lumo.core.runtime 0.0.1.qualifier to bundle ca.odell.glazedlists 1.9.0.", "Unable to satisfy dependency from org.eclipse.nebula.widgets.nattable.extension.glazedlists 1.0.1.201307031725 to package ca.odell.glazedlists 0.0.0.", "Unable to satisfy dependency from org.eclipse.nebula.widgets.nattable.extension.glazedlists 1.0.1.201307031725 to package ca.odell.glazedlists.event 0.0.0.", "Unable to satisfy dependency from org.eclipse.nebula.widgets.nattable.extension.glazedlists 1.0.1.201307031725 to package ca.odell.glazedlists.gui 0.0.0.", "Unable to satisfy dependency from org.eclipse.nebula.widgets.nattable.extension.glazedlists 1.0.1.201307031725 to package ca.odell.glazedlists.matchers 0.0.0.", "Unable to satisfy dependency from org.eclipse.nebula.widgets.nattable.extension.glazedlists 1.0.1.201307031725 to package ca.odell.glazedlists.util.concurrent 0.0.0.", "No solution found because the problem is unsatisfiable."]
    at org.eclipse.tycho.p2.resolver.AbstractResolutionStrategy.newResolutionException(AbstractResolutionStrategy.java:98)
    at org.eclipse.tycho.p2.resolver.ProjectorResolutionStrategy.resolve(ProjectorResolutionStrategy.java:88)
    at org.eclipse.tycho.p2.resolver.AbstractResolutionStrategy.resolve(AbstractResolutionStrategy.java:63)
    at org.eclipse.tycho.p2.impl.resolver.P2ResolverImpl.resolveDependencies(P2ResolverImpl.java:126)
    at org.eclipse.tycho.p2.impl.resolver.P2ResolverImpl.resolveDependencies(P2ResolverImpl.java:81)
    at org.eclipse.tycho.p2.resolver.P2TargetPlatformResolver.doResolvePlatform(P2TargetPlatformResolver.java:374)
    at org.eclipse.tycho.p2.resolver.P2TargetPlatformResolver.resolveDependencies(P2TargetPlatformResolver.java:350)
    at org.eclipse.tycho.core.resolver.DefaultTychoDependencyResolver.resolveProject(DefaultTychoDependencyResolver.java:109)
    at org.eclipse.tycho.core.maven.TychoMavenLifecycleParticipant.afterProjectsRead(TychoMavenLifecycleParticipant.java:82)
    at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:274)
    at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:156)
    ... 11 more

pom.xml

<?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>lumo</groupId>
    <artifactId>lumo-e4</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>pom</packaging>

    <properties>
        <tycho.version>0.18.0</tycho.version>
        <maven.compiler.source>1.7</maven.compiler.source>
        <maven.compiler.target>1.7</maven.compiler.target>
        <encoding>UTF-8</encoding>
    </properties>
    <modules>
        <module>lumo.target</module>


        <module>microsoftsqlserver</module>
        <module>org.eclipse.gemini.dbaccess.microsoftsqlserver</module>


        <module>lumo.settings</module>
        <module>lumo.components</module>
        <module>lumo.osgi.service.dialog</module>
        <module>lumo.osgi.service.dialog.impl</module>

        <module>lumo.osgi.service.notification</module>
        <module>lumo.osgi.service.notification.impl</module>


        <module>lumo.core.runtime</module>
        <module>lumo.rcp</module>
        <module>lumo.model</module>
        <module>lumo.site</module>
        <module>lumo.feature</module>

    </modules>
    <build>
        <plugins>
            <plugin>
                <groupId>org.eclipse.tycho</groupId>
                <artifactId>tycho-maven-plugin</artifactId>
                <version>${tycho.version}</version>
                <extensions>true</extensions>
            </plugin>

            <!-- Use custom target platform -->
            <plugin>
                <groupId>org.eclipse.tycho</groupId>
                <artifactId>target-platform-configuration</artifactId>
                <version>${tycho.version}</version>
                <configuration>
                    <target>
                        <artifact>
                            <groupId>${project.groupId}</groupId>
                            <artifactId>lumo.target</artifactId>
                            <version>${project.version}</version>
                        </artifact>
                    </target>
                </configuration>
            </plugin>
        </plugins>
    </build>

    <repositories>
        <repository>
            <id>kepler</id>
            <layout>p2</layout>
            <url>http://download.eclipse.org/releases/kepler</url>
        </repository>
    </repositories>
</project>
4

3 回答 3

2

您的目标平台似乎包含ca.odell.glazedlists在 Eclipse 中,但不包含在 Tycho 中,因为该捆绑包是通过 Tycho 不支持的机制包含的。日志中有一条警告告诉您:

[WARNING] Target location type: Directory is not supported
[WARNING] Target location type: Profile is not supported
[WARNING] Target location type: Directory is not supported

您需要更改目标定义文件,使其仅使用“软件站点”位置。

于 2013-07-13T11:12:52.857 回答
0

还有一种可能性是:

  1. 您已经创建了目标平台。
  2. 将其发布到您本地的 maven p2 存储库。
  3. 将 ca.odell.glazedlists 添加到目标平台(但忘记再次发布目标平台)。
  4. 现在从 Eclipse 中,您的包当前位于获取的目标平台中。但是,在 Eclipse 外部, mvn clean package 命令仍然是指开始时发布的旧目标定义。
  5. 因此,尝试再次发布目标平台,然后再发布 mvn clean package。
于 2013-07-22T06:30:46.553 回答
-1

在 tycho 配置中,如果您这样配置:

<plugin>
            <groupId>org.eclipse.tycho</groupId>
            <artifactId>target-platform-configuration</artifactId>
            <configuration>
                <pomDependencies>consider</pomDependencies>
            </configuration>
        </plugin>

它将从您的 pom.xml 中配置的依赖项中解析依赖项。否则,它将解析 MANIFEST 文件中条目的依赖关系

于 2013-07-22T06:48:05.297 回答