我在组装目标产品时使用tycho-p2-repository-plugin
。其archive-repository
目标的默认行为是创建聚合的p2存储库的zip存档。
我想知道的是如何在zip文件中包含父repository
目录?默认情况下,仅包含repository
目录的内容。例如,如果a.file
目录中有2个文件b.file
和repository
,则当您打开生成的jar时,您会看到此
a.file
b.file
但是,我想要的是repository
目录本身是zip中的第一层,如果你深入了解它,你就会看到其他的,如下所示:
repository/
-> a.file
-> b.file
如何让tycho-p2-repository-plugin
这样做?
答案 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>