zoukankan      html  css  js  c++  java
  • dubbo框架的web端(war)和server端(tar.gz)结合jenkins打包方式

    一.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包中。

  • 相关阅读:
    Swift中的参数内部名称和外部名称
    iOS 发布流程
    解决xcode iOS真机调试正常,模拟器失败问题
    iOS 解决ipv6问题
    cocos2dx 字体描边遇到的描边缺失的bug
    cocos2dx for iOS fmod的音效引擎接入
    skynet 学习笔记-sproto模块(2)
    cocos2dx for android 接入 fmod的过程
    skynet 学习笔记-netpack模块(1)
    linux 安装并且设置环境lua环境变量
  • 原文地址:https://www.cnblogs.com/dannylinux/p/10711548.html
Copyright © 2011-2022 走看看