• 使用Maven、Eclipse与travis-ci进行在线build操作详解


    1.关于Maven的介绍:

    Java世界中主要有三大构建工具:Ant、Maven和Gradle
    现如今用得比较多的就是gradle,Maven用得次数也还可以,Ant基本已经绝迹了

     当然Maven除了构建的功能以外,还有一些项目管理等等其他功能,这里不再赘述。

    2.Maven依赖管理系统

    我们编写一个java项目,可能会需要使用到各种各样的包,而build过程中我们是需要这些包的,因此我们必须在Maven中定义依赖关系

    在Java世界中,可以用groupId、artifactId、version组成的Coordination(坐标)唯一标识一个依赖。

    任何基于Maven构建的项目自身也必须定义这三项属性,生成的包可以是Jar包,也可以是war包或者ear包。

    以junit为例,依赖关系表示如下:

    <dependency>
     <groupId>junit</groupId>
     <artifactId>junit</artifactId>
     <version>4.12</version>
     <scope>test</scope>
    </dependency>

    关于包的依赖关系书写,可以在:http://mvnrepository.com/ 这个网站中找到,在最上面的搜索栏输入包名,就可以得到依赖关系的书写方法了

    3.travis-ci介绍

    持续集成:Continuous Integration,简称CI,意思是,在一个项目中,任何人对代码库的任何改动,都会触发CI服务器自动对项目进行构建,自动运行测试,甚至自动部署到测试环境。这可以理解成为一种坚持的方法,在进行代码的改动后,利用travis-ci进行在线build,如果成功则说明改动没有问题,否则说明修改存在一些错误。那为什么不能在自己电脑上debug而需要使用travis-ci呢?这是需要作为一个验证,可能程序运行依赖了本地有的环境配置,而用户在使用你的程序,由于他的本地没有配置,因此程序无法运行。如果在线build成功,那么程序则可以在不依赖本地环境下运行。

    4.编写.travis.yml文件

     由于build需要.travis.yml文件,在项目根目录下创建文件并编写内容如下,把文件名改成.travis.yml

    那么该文件就编写完成了

    language: java
    
    jdk:
      - oraclejdk8

    5.获得pom.xml文件

    打开eclipse,右键项目,选择Configure,再选择Convert to Maven Project。

    这样会自动生成一个pom.xml文件,这时候只需要进行依赖关系的添加就可以了

    添加过程:

    打开pom.xml,在之前提到的网站http://mvnrepository.com/中找到自己需要的包,复制<dependency></dependencies>到pom.xml中,并在其前后要加上<dependencies></dependencies>。

    示例如下

    <dependencies>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
            <scope>test</scope>
        </dependency>
        <!-- https://mvnrepository.com/artifact/org.junit.jupiter/junit-jupiter-api -->
        <dependency>
            <groupId>org.junit.jupiter</groupId>
            <artifactId>junit-jupiter-api</artifactId>
            <version>5.1.0</version>
            <scope>test</scope>
        </dependency>
     </dependencies>

    6.中途遇到的问题

     可能会出现如下错误

    build failure: error: unmappable character for encoding UTF-8

     我的解决办法是将程序中所有的中文都改成英文(包括注释)

    但是还可以将字符编码改成cp936 ,GBK等等,也可以改正此错误

    另外,由于大部分人使用junit都是junit5,但是在Maven依赖关系查询中直接搜索只会搜索出junit4的包

    因此使用junit5需要搜索jupiter,再将其依赖关系到pom.xml

    为什么junit4与5的包名不同,这需要进一步研究。

  • 相关阅读:
    Android Gradle Plugin指南(五)——Build Variants(构建变种版本号)
    文件内容操作篇clearerr fclose fdopen feof fflush fgetc fgets fileno fopen fputc fputs fread freopen fseek ftell fwrite getc getchar gets
    文件操作篇 close creat dup dup2 fcntl flock fsync lseek mkstemp open read sync write
    嵌入式linux应用程序调试方法
    version control system:git/hg/subversion/cvs/clearcase/vss。software configruation management。代码集成CI:Cruisecontrol/hudson/buildbot
    最值得你所关注的10个C语言开源项目
    如何记录linux终端下的操作日志
    CentOS 5.5 虚拟机安装 VirtualBox 客户端增强功能
    sizeof, strlen区别
    C/C++嵌入式开发面试题
  • 原文地址:https://www.cnblogs.com/masteryellow/p/8747915.html
Copyright © 2020-2023  润新知