一.web端程序,打包成war包
jenkins配置
1.项目名称,旧文件处理配置
2.参数构建配置
3.源码库配置
4.打包文件pom.xml配置及多环境打包传参,此处传参qa(表示打测试环境包,名称自定义)
5.maven全局配置文件路径
6.打包后执行操作
pom.xml配置
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion> <parent>
<groupId>com.jeck.danny</groupId>
<artifactId>danny-cloud-parent</artifactId>
<version>1.2.0-SNAPSHOT</version>
<relativePath>../danny-cloud-parent</relativePath>
</parent> <artifactId>test-web</artifactId>
<packaging>war</packaging>
<name>test-web</name>
<url>http://maven.apache.org</url> <properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<scm>
<connection>scm:svn:https://192.168.1.8/svn/test</connection>
<developerConnection>scm:svn:https://192.168.1.8/svn/test</developerConnection>
</scm>
<dependencies>
<dependency>
<groupId>com.jeck.danny</groupId>
<artifactId>danny-common</artifactId>
</dependency>
<dependency>
<groupId>com.jeck.danny</groupId>
<artifactId>danny-i18n</artifactId>
<version>1.2.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>com.jeck.danny</groupId>
<artifactId>danny-domain</artifactId>
</dependency>
<dependency>
<groupId>com.jeck.danny</groupId>
<artifactId>danny-user-sso</artifactId>
<version>1.2.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>com.jeck.danny</groupId>
<artifactId>danny-test-api</artifactId>
<version>1.2.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>com.github.sgroschupf</groupId>
<artifactId>zkclient</artifactId>
<exclusions>
<exclusion>
<groupId>org.apache.zookeeper</groupId>
<artifactId>zookeeper</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>dubbo</artifactId>
<exclusions>
<exclusion>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
</exclusion>
<exclusion>
<artifactId>spring</artifactId>
<groupId>org.springframework</groupId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjrt</artifactId>
</dependency>
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjweaver</artifactId>
</dependency>
... <dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
</dependency> ...//一大堆依赖略 </dependencies> <distributionManagement>
<repository>
<id>danny-releases</id>
<name>danny-releases</name>
<url>http://maven.danny.com.cn:8091/nexus/content/repositories/releases/</url>
</repository>
<snapshotRepository>
<id>danny-snapshots</id>
<name>Nexus Snapshot Repository</name>
<url>http://maven.danny.com.cn:8091/nexus/content/repositories/snapshots/</url>
</snapshotRepository>
</distributionManagement> <build>
<finalName>test-web</finalName>
<outputDirectory>src/main/webapp/WEB-INF/classes</outputDirectory>
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
</resource>
</resources> <extensions>
<extension>
<groupId>org.apache.maven.wagon</groupId>
<artifactId>wagon-ssh</artifactId>
<version>2.10</version>
</extension>
</extensions> <plugins>
<plugin>
<groupId>org.mortbay.jetty</groupId>
<artifactId>jetty-maven-plugin</artifactId>
<version>8.1.16.v20140903</version>
<configuration>
<scanIntervalSeconds>3</scanIntervalSeconds>
<stopPort>9988</stopPort>
<stopKey>foo</stopKey>
<webApp>
<contextPath>/paicoin</contextPath>
</webApp>
<!-- 设置监听目录 -->
<connectors>
<connector implementation="org.eclipse.jetty.server.nio.SelectChannelConnector">
<port>8080</port>
<maxIdleTime>60001</maxIdleTime>
</connector>
</connectors>
</configuration>
</plugin> <plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-release-plugin</artifactId>
<version>2.5.3</version>
<configuration>
<tagBase>https://192.168.1.8/svn/test</tagBase>
</configuration>
</plugin>
</plugins>
</build> </project>
jenkins运行打包后,会在项目的target目录下生成一个war文件
二.server端程序,打包成tar.gz包
jenkins配置
前面配置和web端配置差不多
pom.xml配置
此处在pom.xml中调用了assembly.xml配置文件
先看pom.xml配置
<modelVersion>4.0.0</modelVersion> <parent>
<groupId>com.danny.test</groupId>
<artifactId>test-cloud-parent</artifactId>
<version>1.2.0-SNAPSHOT</version>
<relativePath>../test-cloud-parent</relativePath>
</parent> <artifactId>test-service</artifactId>
<packaging>jar</packaging> <name>test-service</name>
<url>http://maven.apache.org</url> <properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<scm>
<connection>scm:svn:https://192.168.1.8/svn/test/tags/server/打包发布/server/业务系统</connection>
</scm>
<dependencies> <dependency>
<groupId>com.danny.test</groupId>
<artifactId>test-common</artifactId>
</dependency> <dependency>
<groupId>com.danny.test</groupId>
<artifactId>test-domain</artifactId>
</dependency> <dependency>
<groupId>com.danny.test</groupId>
<artifactId>test-user-api</artifactId>
</dependency>
<dependency>
<groupId>com.danny.test</groupId>
<artifactId>test-paicoin-api</artifactId>
<version>1.2.0-SNAPSHOT</version>
</dependency>
<!-- <dependency>
<groupId>com.danny.test</groupId>
<artifactId>test-user-sso</artifactId>
<version>1.2.0-SNAPSHOT</version>
</dependency> -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>dubbo</artifactId>
</dependency> <dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency> <dependency>
<groupId>org.slf4j</groupId>
<artifactId>jcl-over-slf4j</artifactId>
</dependency> <dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>3.13</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>3.13</version>
</dependency> </dependencies> <build>
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
</resource>
</resources> <plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.0</version>
<configuration>
<source>1.7</source>
<target>1.7</target>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>2.4</version>
<configuration>
<!--
<includes>
<include>*.properties</include>
<include>**/*.xml</include>
</includes>
-->
<excludes>
<exclude>**/*.properties</exclude>
</excludes>
</configuration>
</plugin>
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<executions> <!--执行器 mvn assembly:assembly -->
<execution>
<id>make-assembly</id><!--名字任意 -->
<phase>package</phase><!-- 绑定到package生命周期阶段上 -->
<goals>
<goal>single</goal><!-- 只运行一次 -->
</goals>
<configuration>
<finalName>${artifactId}</finalName>
<appendAssemblyId>false</appendAssemblyId>
<attach>false</attach>
<descriptors> <!--描述文件路径 -->
<descriptor>src/main/assembly/assembly.xml</descriptor>
</descriptors>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-release-plugin</artifactId>
<version>2.5.3</version>
<configuration>
<tagBase>https://192.168.1.8/svn/test/tags/server/打包发布/server/业务系统</tagBase>
</configuration>
</plugin>
</plugins>
</build> </project>
assembly.xml文件配置
<assembly>
<id>assembly</id>
<formats>
<format>tar.gz</format>
<!-- <format>zip</format> <format>dir</format> -->
</formats>
<includeBaseDirectory>true</includeBaseDirectory>
<fileSets>
<fileSet>
<directory>src/main/assembly/bin</directory>
<outputDirectory>bin</outputDirectory>
<fileMode>0755</fileMode>
</fileSet>
<!-- <fileSet> <directory>src/main/assembly/conf</directory> <outputDirectory>conf</outputDirectory>
<fileMode>0644</fileMode> </fileSet> -->
<fileSet>
<directory>src/main/resources/</directory>
<outputDirectory>conf</outputDirectory>
<filtered>true</filtered>
<includes>
<include>dubbo.properties</include>
<include>property.properties</include>
</includes>
</fileSet>
<!-- <fileSet> <directory>src/test/resources</directory> <outputDirectory>conf</outputDirectory>
<fileMode>0644</fileMode> </fileSet> -->
</fileSets>
<dependencySets>
<dependencySet>
<outputDirectory>lib</outputDirectory>
</dependencySet>
</dependencySets>
</assembly>
同样jenkins运行打包后,会在项目的target目录下生成一个tar.gz文件
注:
setting.xml主要用于配置maven的运行环境等一系列通用的属性,是全局级别的配置文件;而pom.xml主要描述了项目的maven坐标,依赖关系,开发者需要遵循的规则,组织和licenses,以及其他所有的项目相关因素,是项目级别的配置文件。
通常一个项目可能还包含其他的外部配置文件,或者自定义的shell脚本或者bat命令等,此时应该使用assemble命令来进行构建。assembly,即组合构建的意思,使用此插件可以整合你想要的文件到最终的tar包中。