使用tycho-p2-repository-plugin创建带父目录的zip

时间:2015-04-17 22:29:38

标签: eclipse-rcp tycho

我在组装目标产品时使用tycho-p2-repository-plugin。其archive-repository目标的默认行为是创建聚合的p2存储库的zip存档。

我想知道的是如何在zip文件中包含父repository目录?默认情况下,仅包含repository目录的内容。例如,如果a.file目录中有2个文件b.filerepository,则当您打开生成的jar时,您会看到此

a.file 
b.file

但是,我想要的是repository目录本身是zip中的第一层,如果你深入了解它,你就会看到其他的,如下所示:

repository/
   -> a.file
   -> b.file

如何让tycho-p2-repository-plugin这样做?

1 个答案:

答案 0 :(得分:1)

AFAIK tycho-p2-repository-plugin不允许自定义生成的zip文件的布局。

我们有一个类似的用例,我们必须从p2存储库的包中创建一个WAR文件,然后使用maven-assembly-plugin

以下是我们在pom.xml中指定的内容:

<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-assembly-plugin</artifactId>
  <version>2.2</version>
  <configuration>
    <descriptors>
      <descriptor>assembly.xml</descriptor>
    </descriptors>
    <finalName>my-repo</finalName>
    <appendAssemblyId>false</appendAssemblyId>
  </configuration>
  <executions>
    <execution>
      <id>make-assembly</id>
      <phase>verify</phase>
      <goals>
        <goal>single</goal>
      </goals>
    </execution>
  </executions>
</plugin>

以下是assembly.xml的样子:

<assembly xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2 http://maven.apache.org/xsd/assembly-1.1.2.xsd">  <id>com.diwoblood.war</id>
  <formats>
    <format>war</format>
  </formats>
  <includeBaseDirectory>false</includeBaseDirectory>
  <fileSets>
    <fileSet>
      <directory>${basedir}/target/repository/</directory>
      <outputDirectory>/repository</outputDirectory>
    </fileSet>
  </fileSets>
</assembly>