2

我正在尝试使用 Tycho 为扩展 Eclipse 环境的插件创建 P2 存储库。当我尝试进行 mvn 安装时,它创建的 zip 文件添加了来自 org.eclipse 的插件,我不想包含这些插件。

我已经定义插件不包含依赖项(即使默认值已经是错误的)

  <plugin>
          <groupId>org.eclipse.tycho</groupId>
          <artifactId>tycho-p2-repository-plugin</artifactId>
          <configuration>
                  <includeAllDependencies>false</includeAllDependencies>
          </configuration>
  </plugin>

目前它会创建一个至少 48MB 的 zip 文件。

4

2 回答 2

3

由 eclipse-repository 打包类型构建的 p2 存储库仅包含模块category.xml*.product文件的(传递)包含。“传递包含”是这些文件中列出的所有内容,以及包含的功能中包含的所有内容。默认情况下,包括仅被引用的工件(例如,在捆绑清单中)。

因此,如果 p2 存储库包含太多工件,请不要包含工件或包含工件的功能。

如果您想要构建一个必须包含某些不应进入 p2 存储库的内容的 RCP,请将产品定义移动到单独的eclipse-repository模块中。

于 2013-02-20T11:21:44.580 回答
0

尝试这个

<plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-antrun-plugin</artifactId>
            <version>1.6</version>
            <executions>
                <execution>
                    <id>prepare-feature-distribution</id>
                    <phase>package</phase>
                    <goals>
                        <goal>run</goal>
                    </goals>
                    <configuration>
                        <tasks>
                            <mkdir
                                dir="${basedir}/target/${project.parent.artifactId}/${feature.version}" />
                            <!-- Copy core and targetPlatform jars -->
                            <copy
                                todir="${basedir}/target/${project.parent.artifactId}/${feature.version}">
                                <fileset dir="${basedir}/target/repository/plugins">
                                    <exclude name="ch.qos.logback.slf4j*.jar" />
                                    <exclude name="javax.xml.bind*.jar" />
                                    <exclude name="org.apache.xerces*.jar" />
                                    <exclude name="org.apache.xml.resolver*.jar" />
                                    <exclude name="org.apache.xml.serializer*.jar" />
                                    <exclude name="org.eclipse.equinox.common*.jar" />
                                    <exclude name="org.eclipse.equinox.ds*.jar" />
                                    <exclude name="org.eclipse.equinox.launcher.win32.win32.x86*.jar" />
                                    <exclude name="org.eclipse.equinox.launcher*.jar" />
                                    <exclude name="org.eclipse.equinox.util*.jar" />
                                    <exclude name="org.eclipse.net4j.jms.api*.jar" />
                                    <exclude name="org.eclipse.osgi.services*.jar" />
                                    <exclude name="org.eclipse.osgi*.jar" />
                                </fileset>
                            </copy>
                        </tasks>
                    </configuration>
                </execution>
            </executions>
        </plugin>
于 2013-03-16T00:19:23.797 回答