0

想象一下,我的目标文件中有这个条目(在我的 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 project * * 无法找到 ???:??? 的工件版本 在依赖列表或项目的依赖管理中。-> [帮助 1]

非常感谢你的回答。

4

1 回答 1

1

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

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

于 2013-12-20T12:03:08.680 回答