【问题标题】:Using tycho-p2-repository-plugin to create zip with parent directory使用 tycho-p2-repository-plugin 创建带有父目录的 zip
【发布时间】:2015-04-17 22:29:37
【问题描述】:

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

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

a.file 
b.file

但是,我希望 repository 目录本身成为 zip 中的第一层,如果您深入其中,您会看到其他目录,如下所示:

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

我怎样才能让tycho-p2-repository-plugin 这样做?

【问题讨论】:

    标签: eclipse-rcp tycho


    【解决方案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>
    

    【讨论】:

    • @java_code_mongrel 很高兴您能解决您的问题。我看到你是新来的。如果您认为某个答案解决了问题,请单击绿色复选标记将其标记为“已接受”。这有助于将注意力集中在仍然没有答案的旧帖子上。
    猜你喜欢
    • 1970-01-01
    • 2019-01-02
    • 2012-01-24
    • 1970-01-01
    • 1970-01-01
    • 2011-03-08
    • 1970-01-01
    • 1970-01-01
    • 2018-08-14
    相关资源
    最近更新 更多