东家规定了发布项目包的目录结构,为了符合东家的规范,项目在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>
分享到:
相关推荐
在IT行业中,Laravel是一个非常流行的PHP框架,用于构建优雅且高效的Web应用程序。...理解并实施这样的自动化流程对于现代Web开发团队来说是必要的,因为它能促进敏捷开发,确保快速而可靠的软件发布。
SpringBoot插件式开发框架是基于SpringBoot框架构建的一种创新性开发模式,旨在解决系统动态扩展和模块化管理的问题。这种框架充分利用了SpringBoot的简洁、高效特性,为开发者提供了快速构建可插拔功能的能力。下面...
本项目是基于Vue.js和Vue CLI构建的,旨在提供一套完整的敏捷开发底层结构,以加速Web应用程序的开发流程。Vue CLI是Vue官方提供的脚手架工具,它大大简化了项目的初始化和配置工作,使得开发者可以快速地搭建开发...
Maven的出现极大地简化了Java项目的构建过程,并在敏捷开发中扮演着重要角色。相较于Ant等传统构建工具,Maven提供了更强大的功能,如自动依赖管理和生命周期管理等,从而显著提高了开发效率。 #### 安装Maven 为了...
云原生是一种构建和运行应用程序的方法,它强调利用容器化、微服务架构、持续交付和DevOps文化来实现快速迭代和敏捷开发。Dory-Engine与这些原则相吻合,它支持将应用程序打包成容器镜像,使得每个服务都能独立部署...
对于大型Maven项目团队来说,使用这样的工具可以显著提高开发效率,减少错误,同时也能更好地支持敏捷开发和持续集成/持续部署(CI/CD)流程。 总之,"google-maven-exploder"是Google为优化Maven项目管理而提供的一...
在持续集成(CI)中,构建代理是核心组件之一,它负责执行实际的构建任务,如编译代码、运行测试、打包应用等。Web应用程序形式的构建代理使得用户可以通过浏览器远程控制和监控构建过程,这对于分布式团队尤其有用...
- **优点**:降低界面更新的影响范围,提高UI迭代速度,减少代码冲突,有利于敏捷开发。 - **实现方式**:使用CocoaPods或Carthage等依赖管理工具创建可重用的组件库,或者利用iOS的Container View Controller来...
Python库“gardener_cicd_cli-1.415.0-py3-none-any.whl”是一个用于持续集成和持续部署(CI/CD)的工具,专为Python开发环境设计。这个压缩包包含了该库的最新版本1.415.0,支持Python 3解释器,并且适用于任何操作...
Hoodie-admin-dashboard遵循现代前端开发的最佳实践,可能包含了模块化结构,如使用CommonJS或ES6模块,以及利用构建工具如Webpack或Rollup进行打包。这使得代码组织清晰,易于维护。同时,它可能还采用了响应式设计...
总的来说,CruiseControl-2.3.1是一个强大且灵活的项目管理工具,尤其适用于需要频繁构建和测试的敏捷开发环境。虽然相对小众,但它提供的功能和价值不容忽视。如果你对持续集成感兴趣或者正在寻找一个有效的项目...
4. 构建脚本:在Jenkins Job中,我们可以编写或者引用已有的构建脚本(如build.sh或build.gradle),执行编译、测试、打包等任务。 5. 部署:完成构建后,Jenkins可以根据配置自动将结果部署到测试或生产环境,实现...
在Python世界里,这种打包方式通常用于发布未编译的源码,使得开发者可以自定义构建过程。 接着,我们来看看标签。"zookeeper"是一个分布式协调服务,由Apache开发,广泛应用于分布式环境中的配置管理、命名服务和...
- **看板概念**:工作看板源自敏捷开发方法,常用于任务管理,分为不同的列(如“待办”、“进行中”和“已完成”),卡片代表每个任务,可以在列之间移动。 - **数据模型**:在Flutter应用中,工作看板的数据模型...
- **Tailwind CSS**:一个实用优先的CSS框架,提供一套可组合的实用程序类,用于快速构建自定义设计。 #### 四、项目实践经验 **TechScrum项目:** - **TechScrum**:项目管理系统,帮助团队高效使用敏捷模式推进...
Maven提供的自动化工具支持敏捷开发模式下的快速迭代和持续集成。 #### 二、Maven安装与配置 **2.1 在不同操作系统上的安装** - **Windows平台:** - 下载Maven安装包,并解压到指定目录。 - 配置环境变量,...
Grails是一个基于Groovy语言的开源Web应用开发框架,它充分利用了敏捷开发的理念,实现了快速开发与部署。Grails的设计理念是“约定优于配置”(Convention Over Configuration),简化了开发流程,使开发者能够更加...
云原生(Cloud Native)是一种构建和运行应用程序的方法,强调利用容器、微服务、声明式API以及持续交付和DevOps文化来实现快速迭代和敏捷性。"ambiance-voice-assistant"可能设计为可以轻松部署在Kubernetes或...
**Yocto 项目**是一个开源框架,它提供了构建自定义嵌入式 Linux 发行版所需的所有工具和技术支持。对于那些需要高度定制化操作系统的开发者来说,Yocto 项目是一个不可或缺的资源。通过使用 Yocto 项目,可以轻松地...