这种部署目录结构非常流行,并已被apache maven和ant等许多出色的应用程序采用。
是的,我们可以通过在maven软件包阶段使用maven-assembly-plugin来实现。
示例pom.xml:
<!-- Pack executable jar, dependencies and other resource into tar.gz --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-assembly-plugin</artifactId> <version>2.2-beta-5</version> <executions> <execution> <phase>package</phase> <goals><goal>attached</goal></goals> </execution> </executions> <configuration> <descriptors> <descriptor>src/main/assembly/binary-deployment.xml</descriptor> </descriptors> </configuration> </plugin>
样本binary-deployment.xml:
<!-- release package directory structure: *.tar.gz conf *.xml *.properties lib application jar third party jar dependencies run.sh run.bat--><assembly> <id>bin</id> <formats> <format>tar.gz</format> </formats> <includebaseDirectory>true</includebaseDirectory> <fileSets> <fileSet> <directory>src/main/java</directory> <outputDirectory>conf</outputDirectory> <includes> <include>*.xml</include> <include>*.properties</include> </includes> </fileSet> <fileSet> <directory>src/main/bin</directory> <outputDirectory></outputDirectory> <filtered>true</filtered> <fileMode>755</fileMode> </fileSet> <fileSet> <directory>src/main/doc</directory> <outputDirectory>doc</outputDirectory> <filtered>true</filtered> </fileSet> </fileSets> <dependencySets> <dependencySet> <outputDirectory>lib</outputDirectory> <useProjectArtifact>true</useProjectArtifact> <unpack>false</unpack> <scope>runtime</scope> </dependencySet> </dependencySets></assembly>



