如何使用maven 3从最终的构建zip存档中删除目录

时间:2012-02-20 12:45:36

标签: eclipse maven eclipse-rcp tycho maven-ant-tasks

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

  <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文件夹?

1 个答案:

答案 0 :(得分:1)

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

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