我有一個構建Ear的Maven項目。然後我們需要將這個耳朵包裝成一個帶有一些其他文件(shell腳本等)的zip文件。Maven Assembly:Error輸入中有多個文件
我的項目是這樣的:
foo-parent
foo-jar
foo-sar
foo-ear
罐子,沙拉和耳朵都在建造。耳朵包含來自其他子模塊的罐子和瓶子。現在,我所要做的就是將其他幾個文件打包並壓縮。
本來,我把程序集放在foo-parent
中,但後來遇到了問題,foo-parent
在構建jar,sar和ear之前正在運行包裝階段。讀了一下,我被告知把這個組件放在其中一個子模塊中,所以我選擇了foo-ear
。
我現在得到的錯誤:
Failed to execute goal org.apache.maven.plugins:maven-assembly-plugin:2.6:single
(foo-services-zip) on project foo-ear: Failed to create assembly:
Error creating assembly archive foo-services-dist: There is more
than one file in input.
我不知道什麼There is more than one file in input
手段。
我foo-ear
POM看起來是這樣的:
<project>
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.vegicorp.foo</groupId>
<artifactId>foo-parent</artifactId>
<version>1.0.0</version>
<relativePath>..</relativePath>
</parent>
<artifactId>foo-ear</artifactId>
<packaging>ear</packaging>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-ear-plugin</artifactId>
<version>2.10.1</version>
[...]
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<executions>
<execution>
<id>build-foo-zip</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
<configuration>
<descriptors>
<descriptor>src/assembly/foo-zip.xml</descriptor>
</descriptors>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
<dependencies>
[...]
</dependencies>
</project>
我src/assembly/foo-zip.xml
文件看起來像這樣:
<assembly>
<id>foo-zip</id>
<formats>
<format>gzip</format>
</formats>
<includeBaseDirectory>true</includeBaseDirectory>
<fileSets>
<fileSet>
<directory>src/dist-files</directory>
<outputDirectory></outputDirectory>
</fileSet>
</fileSets>
<moduleSets>
<moduleSet>
<useAllReactorProjects>true</useAllReactorProjects>
<includes>
<include>com.vegicorp.foo:foo-ear</include>
</includes>
<binaries>
<includeDependencies>false</includeDependencies>
<outputDirectory>data/ear-dir</outputDirectory>
<unpack>true</unpack>
</binaries>
</moduleSet>
</moduleSets>
</assembly>
是的,我知道我可以只使用<file>
或其他<fileSet>
,但耳朵需要解壓縮到gzip文件中,所以我需要使用<moduleSets>
。我不知道如何<binary>
或<moduleSets>
如何工作,我相信我的錯誤是在該配置中的某個地方。