1

当构建准备好时,我在不同平台的所有构建档案中都有 p2 文件夹。据我所知,在构建阶段从档案中排除 p2 目录是不可能的。所以我尝试自己打包存档,而不是使用存档产品执行。问题是如果我想为其他平台或架构制作档案,我需要更改 pom.xml 文件。现在我有以下构建模式:

  <build>
        <plugins>
            <plugin>
                <groupId>org.eclipse.tycho</groupId>
                <artifactId>tycho-p2-director-plugin</artifactId>
                <version>${tycho-version}</version>
                <executions>
                    <execution>
                        <id>materialize-products</id>
                        <goals>
                            <goal>materialize-products</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>

            <plugin>
                <artifactId>maven-antrun-plugin</artifactId>
                <version>1.7</version>
                <executions>
                    <execution>
                        <id>pack-zip-files</id>
                            <phase>package</phase>
                        <configuration>
                            <target>
                                <zip basedir="${project.build.directory}/products/xxx/win32/win32/x86"
                                    destfile="${project.build.directory}/products/xxx-1.0.${BUILD_NUMBER}-win32.win32.x86.zip"
                                    excludes="${exclude_p2}" />
                                <zip basedir="${project.build.directory}/products/xxx/linux/gtk/x86"
                                    destfile="${project.build.directory}/products/xxx-1.0.${BUILD_NUMBER}-linux.gtk.x86.zip"
                                    excludes="${exclude_p2}" />
                            </target>
                        </configuration>
                        <goals>
                            <goal>run</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
</build>

问题是如何从所有 zip 文件中删除 p2 文件夹?

4

1 回答 1

1

你现在所做的确实是唯一的方法。您可以将包装类型更改为,eclipse-application并且不会创建该目录,但它是一种已弃用的包装类型,并且存在大量问题。

帮助支持多个 POM 的唯一方法是将 POM 配置放入配置文件中,并让构建产品的项目继承它。您还可以使用这些osgi.os osgi.arch属性来代替硬编码的东西,例如win32linux

于 2012-02-24T17:53:42.997 回答