如何使用本地p2站点解决RCP应用程序开发中的依赖问题?

时间:2016-09-21 02:44:19

标签: java eclipse maven eclipse-rcp tycho

我是RCP开发的新手。这是我的问题。

  1. 首先,以下sreenshot是我的直接结构。 enter image description here

  2. 我想在我的插件项目中使用Unirest for Java,在我们的案例中是 com.example.e4.rcp.todo

  3. 我跟随this成功地在mvn jetty:run本地运行 p2更新网站,并在<artifacts>

    中添加了以下行
    <artifact><id>com.mashape.unirest:unirest-java:1.4.9</id></artifact>
    
  4. 现在我想使用 Maven 通过Tycho构建我的项目。这是我的 pom.xml ,位于 com.example.e4.rcp.todo 目录下。

    <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>
      <groupId>com.example.e4.rcp</groupId>
      <artifactId>com.example.e4.rcp.todo</artifactId>
      <version>1.0.0-SNAPSHOT</version>
      <packaging>eclipse-plugin</packaging>
    
      <repositories>  
        <repository>  
          <id>neon</id>  
          <url>http://download.eclipse.org/releases/neon</url>  
          <layout>p2</layout>  
        </repository>     
      </repositories>  
    
      <build>
        <plugins>
          <plugin>
            <groupId>org.eclipse.tycho</groupId>
            <artifactId>tycho-maven-plugin</artifactId>
            <version>0.26.0</version>
            <extensions>true</extensions>
          </plugin>
          <plugin>  
            <groupId>org.eclipse.tycho</groupId>  
            <artifactId>tycho-p2-repository-plugin</artifactId>  
            <version>0.26.0</version>  
          </plugin>            
          <plugin>
            <groupId>org.eclipse.tycho</groupId>
            <artifactId>target-platform-configuration</artifactId>
            <version>0.26.0</version>
            <configuration>
              <environments>
                <environment>
                  <os>linux</os>
                  <ws>gtk</ws>
                  <arch>x86</arch>
                </environment>
                <!-- and others... -->
              </environments>
            </configuration>
          </plugin>
        </plugins>
      </build>
    </project>
    
    1. 当我运行mvn clean package时,会显示以下错误:
  5.   

    [错误]无法解决项目依赖关系:[ERROR]软件正在运行   安装:com.example.e4.rcp.todo 1.0.0.qualifier [错误]丢失   要求:com.example.e4.rcp.todo 1.0.0.qualifier需要'包   com.mashape.unirest.java 1.4.9'但无法找到[错误]   [错误]见   http://wiki.eclipse.org/Tycho/Dependency_Resolution_Troubleshooting   求助。 [错误]无法解析MavenProject的依赖关系:   com.example.e4.rcp:com.example.e4.rcp.todo:1.0.0-SNAPSHOT @   C:\ Users \ wangzen \ workspace2 \ com.example.e4.rcp.todo \ pom.xml:查看日志   详情 - &gt; [帮助1] [错误] [错误]查看完整的堆栈跟踪   错误,用-e开关重新运行Maven。 [错误]重新运行Maven   使用-X开关启用完整的调试日志记录。 [ERROR] [ERROR] For   有关错误和可能的解决方案的更多信息,请阅读   以下文章:[错误] [帮助1]   http://cwiki.apache.org/confluence/display/MAVEN/MavenExecutionException

    我该怎么做才能解决这个问题?我是否必须将本地p2更新站点添加到 pom.xml

    BTW :如果有人能帮我格式化我的问题描述,我真的很感激,特别是在 pom.xml 部分。我尝试使用<code>阻止,但似乎不起作用。

1 个答案:

答案 0 :(得分:1)

您需要添加

<repository>
  <id>unirest</id>
  <url>file:/path/to/unirest/p2/repo</url> <!-- or an http:// based one if available -->
  <layout>p2</layout>
</repository>