Tycho:对应于活动目标平台中的p2可安装单元的maven工件

时间:2013-12-19 21:47:09

标签: maven target tycho p2 artifact

想象一下,我的目标文件中有这个条目(在我的tycho构建中用作活动目标):

<location includeAllPlatforms="true" includeMode="slicer" includeSource="true" type="InstallableUnit">
  <repository id="orbit_I" location="http://download.eclipse.org/tools/orbit/downloads/drops/I20131203074849/repository/"/>
  <unit id="javax.servlet" version="3.0.0.v201112011016"/>
</location>

我可以将此插件作为maven工件引用(使用maven-dependency-plugin)吗?什么是捆绑的groupId / artifactId?

<project>
  [...]
  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-dependency-plugin</artifactId>
        <version>2.8</version>
        <executions>
          <execution>
            <id>copy</id>
            <phase>package</phase>
            <goals>
              <goal>copy</goal>
            </goals>
            <configuration>
              <artifactItems>
                <artifactItem>
                  <groupId>???</groupId>
                  <artifactId>javax.servlet</artifactId>
                  <version>3.0.0.v201112011016</version>
                  <type>???</type>
                  <overWrite>true</overWrite>
                  <outputDirectory>${project.build.directory}/alternateLocation</outputDirectory>
                  <destFileName>optional-new-name.jar</destFileName>
                </artifactItem>
              </artifactItems>
            </configuration>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>
  [...]
</project>

在这个例子中我尝试了很多组合,以取代???用有意义的东西。

我总是得到同样的错误:

  

[错误]无法执行目标   org.apache.maven.plugins:maven-dependency-plugin:2.8:copy(copy)on   项目 * *无法找到???的神器版本:???在任何一个   依赖列表或项目的依赖关系管理。 - &GT; [帮助1]

非常感谢您的回答。

1 个答案:

答案 0 :(得分:1)

Tycho将来自p2存储库的bundle依赖项注入到具有合成groupId p2.eclipse-plugin的Maven模型中。使用此groupId和bundle符号名称作为artifactId,您应该能够从任何Maven插件引用p2依赖项。

顺便说一下,您可以通过添加maven-dependency-plugin的tree目标来查看注入的依赖项,例如:与mvn clean verify dependency:tree