东家规定了发布项目包的目录结构,为了符合东家的规范,项目在build的过程中,必须自定义打包!
ant不太熟悉,使用的是maven-assembly-plugin
首先是在pom.xml文件中引用plugin
<!-- 自定义打包插件.--> <plugin> <artifactId>maven-assembly-plugin</artifactId> <version>2.2</version> <configuration> <finalName>${artifactId}</finalName> <descriptors> <descriptor>assembly-win32zip.xml</descriptor> <!--<descriptor>assembly-autotest.xml</descriptor> <descriptor>assembly-win64zip.xml</descriptor> <descriptor>assembly-linux32tar.xml</descriptor> <descriptor>assembly-linux64tar.xml</descriptor> --> </descriptors> <archive> <manifestEntries> <version>${pom.version}</version> <build-time>${maven.build.timestamp}</build-time> </manifestEntries> </archive> </configuration> <executions> <execution> <id>distro-assembly</id> <phase>package</phase> <goals> <goal>single</goal> </goals> </execution> </executions> </plugin>
编写assembly-win32zip.xml,该配置文件主要是配置输出目录的,代码如下:
<?xml version="1.0" encoding="utf8"?> <assembly xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0 http://maven.apache.org/xsd/assembly-1.1.0.xsd"> <!-- 产生zip文件的名字 --> <id>${version}-${maven-build-timestamp}-win32</id> <formats> <format>zip</format> </formats> <!-- 将全部依赖放到/lib目录下 --> <dependencySets> <dependencySet> <outputDirectory>/server/lib</outputDirectory> </dependencySet> <!--dependencySet> <outputDirectory>/selfguard/lib</outputDirectory> </dependencySet--> </dependencySets> <!-- 根目录下的默认bin,config,log三个目录会被添加到zip中 --> <fileSets> <!-- windwos jdk 目录 --> <fileSet> <directory>d:\jit_ci_build\jdk\jdk1.6.0_18_win32</directory> <outputDirectory>/jre</outputDirectory> <includes> <include>**</include> </includes> <excludes> <exclude>*.zip</exclude> </excludes> </fileSet> <!-- 替换exe 名称 --> <fileSet> <directory>/docs/package/win32</directory> <outputDirectory>/jre/bin</outputDirectory> <includes> <include>**</include> </includes> </fileSet> <!-- 构建目录 --> <fileSet> <directory>${basedir}</directory> <outputDirectory>/server</outputDirectory> <includes> <include>*.txt</include> <include>*.cer</include> <include>bin/**</include> <include>config/**</include> <include>log/</include> <include>temp/</include> <include>conf/</include> <include>common/</include> <include>server/</include> <include>webapps/**</include> </includes> <excludes> <exclude>readme.txt</exclude> <exclude>coverage.txt</exclude> <exclude>*.log</exclude> <exclude>**/_svn/</exclude> </excludes> </fileSet> <!-- 创建webapp目录 --> <fileSet> <directory>web</directory> <outputDirectory>/server/web</outputDirectory> <includes> <include>conf/**</include> <include>webapps/**</include> </includes> <excludes> <exclude>*.txt</exclude> <exclude>*.log</exclude> <exclude>**/_svn/</exclude> </excludes> </fileSet> <fileSet> <directory>../rmsweb/target/rmsweb</directory> <outputDirectory>/server/webapps/ROOT</outputDirectory> <includes> <include>**</include> </includes> <excludes> <exclude>*.txt</exclude> <exclude>*.log</exclude> <exclude>**/_svn/</exclude> </excludes> </fileSet> </fileSets> </assembly>