[软件过程/软件生命周期模型]软件过程的工具链【待续】

摘要:
EA与Rational Rose非常不同。RationalRose只实现了软件的建模,即构建系统的UML模型,而EA并不只实现这些功能。对于软件设计师来说,软件设计所需的一系列操作,从需求分析到概要设计、详细设计、数据库设计到测试、发布、部署,都可以在EA中完成。EA为用户提供了一个高性能和直观的工作界面,并结合了最新的UML 2.0规范,为桌面计算机工作者、开发和应用团队创建了高级软件建模解决方案。
0 宣言:DevOps & RUP统一过程建模

[软件过程/软件生命周期模型]软件过程的工具链【待续】第1张

[软件过程/软件生命周期模型]软件过程的工具链【待续】第2张

[软件过程/软件生命周期模型]软件过程的工具链【待续】第3张
[软件过程/软件生命周期模型]软件过程的工具链【待续】第4张
[软件过程/软件生命周期模型]软件过程的工具链【待续】第5张
[软件过程/软件生命周期模型]软件过程的工具链【待续】第6张
[软件过程/软件生命周期模型]软件过程的工具链【待续】第7张

[软件过程/软件生命周期模型]软件过程的工具链【待续】第8张

[软件过程/软件生命周期模型]软件过程的工具链【待续】第9张
[软件过程/软件生命周期模型]软件过程的工具链【待续】第10张
[软件过程/软件生命周期模型]软件过程的工具链【待续】第11张
[软件过程/软件生命周期模型]软件过程的工具链【待续】第12张
[软件过程/软件生命周期模型]软件过程的工具链【待续】第13张
[软件过程/软件生命周期模型]软件过程的工具链【待续】第14张
[软件过程/软件生命周期模型]软件过程的工具链【待续】第15张

[软件过程/软件生命周期模型]软件过程的工具链【待续】第16张

[软件过程/软件生命周期模型]软件过程的工具链【待续】第17张

1 项目管理 (需求管理 / 缺陷管理 / ...)
  • 禅道(前身:bugfree) [在线协作]
  • JIRA(项目与事务跟踪工具)

与禅道类同,但又不同,有明显的Scrum敏捷风格

[软件过程/软件生命周期模型]软件过程的工具链【待续】第18张
  • Microsoft Project [离线维护]
  • 在线文档 or Excel
2 系统建模

2.1 全过程建模

uml中国 【推荐】

  • PowerDesigner
  • EnterpriseArchitect(EA)
原以为EA跟Rational Rose一样都仅仅是一个UML建模软件,随着对EA的熟悉发现EA的功能太强大了。
EA跟Rational Rose大不一样,Rational Rose只是实现对软件的建模即构建系统的UML模型,而EA却不仅仅是实现这些功能。
对于一个软件设计者来说,从需求分析到概要设计、详细设计、数据库设计到测试、发布、部署等一系列软件设计必须的操作都可以在EA中完成。
可以说只需要一个EA就可以完成一个软件的设计。

生命周期软件设计方案——Enterprise Architect是以目标为导向的软件系统。
它覆盖了系统开发的整个周期,除了开发类模型之外,还包括事务进程分析,使用案例需求,动态模型,组件和布局,系统管理,非功能需求,用户界面设计,测试和维护等。
为整个团队提供高级的UML 2.0建模工具。
EA为用户提供一个高性能、直观的工作界面,联合UML 2.0最新规范,为桌面电脑工作人员、开发和应用团队打造先进的软件建模方案。
该产品不仅特性丰富,而且性价比极高,可以用来配备您的整个工作团队,包括分析人员、测试人员、项目经理、品质控制和部署人员等。
[软件过程/软件生命周期模型]软件过程的工具链【待续】第19张[软件过程/软件生命周期模型]软件过程的工具链【待续】第20张
  • Rational Rose

2.2 部分过程建模

  • Microsoft Visio
  • 亿图图示

2.3 其他

  • Xmind
3 快速原型 & 界面设计
  • Axure RP [快速原型 / 设计草图]
  • Photoshop(标量图) / Adobe Illustrator(矢量图) [效果图]
4 程序开发
  • IntelliJ IDEA / Eclipse / VSCode / ... (集成开发环境)

4.1 前端

  • HTML / CSS / JavaScript
  • echarts / d3.js / three.js (可视化)
  • npm(包管理)
  • VUE

4.2 后端

  • Navicat / DBVeaver / DBvis (数据库管理工具)
  • Java / JVM
[聚合框架/整体解决方案框架]
Spring Boot
Spring Cloud (微服务框架)
  Nacos
  

[Web层]
Spring MVC
Struts

[业务领域层]
Spring

[持久层/DAO层]
MyBatis / MyBatis Plus / Hibernate / Spring JPA (重量级框架)
Apache Commons DbUtils (轻量级框架)
com.github.jsqlparser:jsqlparser (sql解析框架)
C3P0 / Druid / ... (连接池)
redis.clients:jedis / mysql-connector-java / com.oracle:ojdbc7 / org.postgresql:postgresql / com.microsoft.sqlserver:sqljdbc  (jdbc)

[缓存(JVM级)]
com.google.guava.guava (JVM级缓存)

——————————————————
[公共]
org.apache.commons:commons-lang3 / hutool (工具类库库)
  commons-beanutils{特点:bean类库}
  commons-collections{特点:集合类库}
  commons-io
  commons-fileupload
Log4j / Log4j2{主流} / logback{主流} / commons-logging / slf4j{绝对的主流日志标准框架} (日志)
freemarker / thymeleaf / (模板引擎/网页渲染器) 
org.quartz-scheduler.quartz / com.xxl.job-core (任务调度框架)
javax.mail /  (邮件)
com.jcraft.jsch{Java Secure Channel/一个SSH2的纯Java实现}   (ssh)
joda-time (时间处理)
org.mozilla.javascript / Rhino.js (基于java的javascript实现引擎)
org.drools:[drools-core + drools-compiler](基于Java的规则引擎)

[运行期编译器]
janino (java运行时编译器)
org.eclipse.jdt.core.compiler:ecj{在Maven构建中使用Eclipse Java Compiler}

[文件解析/数据解析]
fastjson / jackson / net.sf.json-lib:json-lib (json与对象的双向解析/序列化)
com.google.protobuf:protobuf-java(二进制数据流与对象的双向解析/序列化)
org.apache.avro:avro(rpc/序列化;Avro是Hadoop的一个数据序列化系统)
com.thoughtworks.xstream:xstream{Java对象序列化与XML的双向解析}
DOM / SAX / JDOM / DOM4J{xml读/写;市场占有率更高} / xml-apis:xml-apis / xml-apis.java:xml-apis-ext / xerces:xercesImpl (XML读/写)
com.artofsolving:jodconverter (office转pdf)
org.apache.poi.[poi + poi-ooxml + poi-scratchpad] (Word读/写)
net.sourceforge.jexcelapi:jxl (Excel读/写)
batik-bridge (svg读/写)

[数据处理]
pentaho-kettle:kettle5-log4j-plugin:6.1.0.1-196(kettle/ETL&处理数据)

[网络编程]
io.netty:netty-all{Netty:NIO/异步事件驱动的网络应用框架;Jboss的一部分}
tomcat / org.eclipse.jetty:[jetty-server + jetty-webapp + jetty-continuation + jetty-jsp]{需结合/引入eclipse的ecj编译器方能打包} (servlet容器)
HttpClient / OkHttp / Jsoup(优势:网页解析) / org.seleniumhq.selenium:selenium-java / org.seleniumhq.selenium:selenium-chrome-driver(网络请求)
org.restlet.jse:org.restlet (用于Java的REST框架)
org.springframework.ws:spring-ws-core / org.apache.cxf:[cxf-rt-transports-http + cxf-rt-frontend-jaxws]{基于Maven在Spring中集成CXF Web Service框架;更易于使用;市场占有率高一些} (WebService框架)
com.caucho:hessian{类似于RMI的基于HTTP的轻量级远程服务解决方案} (远程调用框架)

ftp4che / ftp4j / commons-net / jftp / edtFtpjJ (ftp/文件传输)

[图形化编程]
org.jfree.jfreechart (基于Java的图表展示)

[硬件信息采集] https://www.jianshu.com/p/2f979b7b7d52
sigar / oshi 


[AI/机器学习]
jieba (优势:分词) / hanlp (自然语言处理)
  • ElasticSearch/ELK / Redis / FastDFS / MongoDB / RabbitMQ / RocketMQ / ... (数据存储:存储/缓存/搜索/消息队列/解耦/削峰/...)
  • Maven / Gradle (包管理)
[maven私服/仓库] https://www.cnblogs.com/knowledgesea/p/11190579.html
Nexus

[maven插件]
tomcat7-maven-plugin (maven内嵌tomcat到web项目的插件,可直接运行webapp项目) : https://www.cnblogs.com/afeng2010/p/10224597.html

maven-surefire-plugin (maven执行测试用例的插件, 不显式配置maven就会用默认配置)

maven-compiler-plugin (maven编译项目的源代码插件, 可显式指定项目源码的jdk版本)
  maven作为项目管理工具,若我们不告知代码要使用和编译的jdk版本时,其将用maven-compiler-plugin默认的jdk版本来进行处理————极易出现JDK版本不匹配,以至于可能导致编译不通过的问题。
  • Tomcat / Nginx (Web Server)
  • Arthas / JConsole / jps / ...(JVM监控与Debug工具)
5 版本管理
  • Git / GitLab [推荐]
  • SVN
6 构建
  • Maven (Java)
  • Gradle (Java/Kotlin/...)
  • sbt (Scala)
  • npm (前端/JS)
7 测试
  • TestLink (基于web的测试用例管理系统)
TestLink 是基于web的测试用例管理系统,主要功能是测试用例的创建、管理和执行,并且还提供了一些简单的统计功能。
TestLink用于进行测试过程中的管理,通过使用TestLink提供的功能,可以将测试过程从测试需求、测试设计、到测试执行完整的管理起来,同时,它还提供了好多种测试结果的统计和分析,使我们能够简单的开始测试工作和分析测试结果。 
TestLink 是sourceforge的开放源代码项目之一。作为基于web的测试管理系统,TestLink的主要功能包括:
  测试需求管理
  测试用例管理
  测试用例对测试需求的覆盖管理
  测试计划的制定
  测试用例的执行
大量测试数据的度量和统计功能。
  • SonarQube (代码静态扫描)
    • PMD / CheckStyle / Findbugs
sonar可通过PMD,CheckStyle,Findbugs等【代码规则检测工具】规范代码编写。 潜在的缺陷 sonar可以通过PMD,CheckStyle,Findbugs等等代码规则检测工具检 测出潜在的缺陷
[软件过程/软件生命周期模型]软件过程的工具链【待续】第21张[软件过程/软件生命周期模型]软件过程的工具链【待续】第22张[软件过程/软件生命周期模型]软件过程的工具链【待续】第23张[软件过程/软件生命周期模型]软件过程的工具链【待续】第24张
  • JUnit(单元测试)
  • JMeter / LoadRunner (性能测试)
LoadRunner,是一种预测系统行为和性能的负载测试工具。
通过模拟上千万用户实施并发负载及实时性能监测的方式来确认和查找问题,LoadRunner能够对整个企业架构进行测试。
企业使用LoadRunner能最大限度地缩短测试时间,优化性能和加速应用系统的发布周期。
  • soapUI{通过soap/http来检查、调用、实现Web Service的功能/负载/符合性测试}
  • appnium(APP移动端自动化测试{IOS/Android})
  • selenium(Web自动化/系统功能测试、浏览器与操作系统的兼容性测试)
9 发布/集成 : 持续集成
  • Jenkins (持续集成)
  • Codeship (持续集成)
提供快速安全的托管持续集成服务的平台
10 部署
  • openstack (开源的云计算管理平台项目)
  • VMWare
  • Docker
  • Golang
  • Xshell / MobaXterm / Putty / WinSCP
11 运维 : 自动化运维
  • K8S(容器编排)
  • Linux Shell & Python
  • puppet(一种Linux、Unix、windows平台的集中配置管理系统)
  • Chef (自动化配置管理工具)
  • Ansible (基于python的自动化运维工具)
8 监测
  • Nagios (监视系统运行状态和网络信息的监测工具)
Nagios是一款开源的免费网络监视工具,能有效监控Windows、Linux和Unix的主机状态,交换机路由器等网络设备,打印机等。在系统或服务状态异常时发出邮件或短信报警第一时间通知网站运维人员,在状态恢复后发出正常的邮件或短信通知。
  • zabbix(基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案)
zabbix([`zæbiks])是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。
zabbix能监视各种网络参数,保证服务器系统的安全运营;并提供灵活的通知机制以让系统管理员快速定位/解决存在的各种问题。
zabbix由2部分构成,zabbix server与可选组件zabbix agent。
zabbix server可以通过SNMP,zabbix agent,ping,端口监视等方法提供对远程服务器/网络状态的监视,数据收集等功能,它可以运行在Linux,Solaris,HP-UX,AIX,Free BSD,Open BSD,OS X等平台上。
  • ELK(日志收集与分析系统)
  • splunk (机器数据的引擎)

可类比: ELK

splunk是一款可以收集,索引和利用任何数据的“大数据平台”。
使用 Splunk 可收集、索引和利用所有应用程序、服务器和设备生成的快速移动型计算机数据。
如今互联网的普及,数据是一个大爆发的时代,对于应用程序和系统来讲会产生各种各样的数据,其中很重要的一类数据就是“LOG”。一个商店的售卖情况会产生log,一个linux系统会产生log,一个应用服务器会产生log,这些log有着自己独特的意义价值,售卖情况的log可以给经营者决策判断信息,linux系统log可以给运维工作人员定位分析的信息,应用服务器的log也可以体现相关信息。如何从这戏log中准确,快速,形象化地提取出有价值的信息,splunk便可以做到这些工作。
Y 问题集

Q0 Devops的参考书籍?

《企业级Devops技术与工具实战》

Q1 tomcat / jetty / netty 的区别?

1 web servlet容器: jetty / tomcat
2 异步(NIO)事件驱动的网络应用框架: netty

3 Jetty 8和Apache Tomcat 7支持servlet 3.0规范,但netty不支持。因为netty本身就不是一个servlet容器。
  Jetty是一个轻量级的servlet容器,易于嵌入到Java应用程序中,还有一个易于使用的jetty客户端。
  Netty是一款NIO客户端服务器框架、一个异步事件驱动的网络应用框架。可以快速轻松地开发协议服务器和客户端等网络应用程序。它极大地简化并简化了TCP和UDP套接字服务器等网络编程。
    因此Netty专注于帮助编写NIO /非阻塞异步网络程序。例如,你可以在Netty框架的帮助下编写自己的servlet容器或http客户端应用程序。

Q2 UML系统建模工具Rational Rose、PowerDesign、EA、Visio的区别?

ROSE是直接从UML发展而诞生的设计工具,它的出现就是为了对UML建模的支持,ROSE一开始没有对数据库端建模的支持,但是在现在的版本中已经加入数据库建模的功能。ROSE主要是在开发过程中的各种语义、模块、对象以及流程,状态等描述比较好,主要体现在能够从各个方面和角度来分析和设计,使软件的开发蓝图更清晰,内部结构更加明朗(但是它的结构仅仅对那些对掌握UML的开发人员,也就是说对客户了解系统的功能和流程等并不一定很有效),对系统的代码框架生成有很好的支持。但对数据库的开发管理和数据库端的迭代不是很好。

Rational Rose是一种基于UML的建模工具。在面向对象应用程序开发领域,Rational Rose是影响其发展的一个重要因素。
Rational Rose自推出以来就受到了业界的瞩目,并一直引领着可视化建模工具的发展。越来越多的软件公司和开发团队开始或者已经采用Rational Rose,用于大型项目开发的分析、建模与设计等方面。
从使用的角度分析,Rational Rose易于使用,支持使用多种构件和多种语言的复杂系统建模;利用双向工程技术可以实现迭代式开发;团队管理特性支持大型、复杂的项目和大型而且通常队员分散在各个不同地方的开发团队。
同时,Rational Rose与微软Visual Studio系列工具中GUI的完美结合所带来的方便性,使得它成为绝大多数开发人员首选建模工具;Rose还是市场上第一个提供对基于UML的数据建模和Web建模支持的工具。
此外,Rose还为其他一些领域提供支持,如用户定制和产品性能改进。具体介绍可参看http://www.uml.org.cn/RequirementProject/200604043.htm

PowerDesigner原来是对数据库建模而发展起来的一种数据库建模工具。直到7.0版才开始对面向对象的开发的支持,后来又引入了对UML的支持。但是由于PowerDesigner侧重不一样,所以它对数据库建模的支持很好,支持了能够看到的90%左右的数据库,对UML的建模使用到的各种图的支持比较滞后。但是在最近得到加强。所以使用它来进行UML开发的并不多,很多人都是用它来作为数据库的建模。如果使用UML分析,它的优点是生成代码时对Sybase的产品PowerBuilder的支持很好(其它UML建模工具则没有或者需要一定的插件),其他面向对象语言如 C++,Java,VB,C#等支持也不错。但是它好像继承了Sybase公司的一贯传统,对中国的市场不是很看看好,所以对中文的支持总是有这样或那样的问题。
http://www.uml.org.cn/UMLTools/powerDesigner/powerDesignerToolIntroduction.htm

UML建模工具Visio 原来仅仅是一种画图工具,能够用来描述各种图形(从电路图到房屋结构图),也是到VISIO2000才开始引进软件分析设计功能到代码生成的全部功能,它可以说是目前最能够用图形方式来表达各种商业图形用途的工具(对软
件开发中的UML支持仅仅是其中很少的一部分)。它跟微软的office产品的能够很好兼容。能够把图形直接复制或者内嵌到WORD的文档中。但是对于代码的生成更多是支持微软的产品如VB,VC++,MS SQL Server 等(这也是微软的传统),所以它可以说用于图形语义的描述比较方便,但是用于软件开发过程的迭代开发则有点牵强。

Enterprise Architect是一个全功能的、基于UML的visual CASE工具,主要用于设计、编写、构建并管理以目标为导向的软件系统。它支持用户案例、商务流程模式以及动态的图表、分类、界面、协作、结构以及物理模型。此外,它还支持C++、Java、Visual Basic、Delphi、C#以及VB.Net。具体可看http://www.softwarechn.com/SparxSystems/sparxsystems_index.htm

Q3: maven中如何引入keetle的JAR包?

<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/maven-v4_0_0.xsd">
    ...

        <!-- 新增大数据组件jar -->
        <dependency>
            <groupId>pentaho-kettle</groupId>
            <artifactId>kettle-core</artifactId>
            <version>${kettle.version}</version>
            <exclusions>
                <exclusion>
                    <groupId>org.eclipse.jetty</groupId>
                    <artifactId>jetty-util</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>javassist</groupId>
                    <artifactId>javassist</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>xml-apis</groupId>
                    <artifactId>xml-apis-ext</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>pentaho-kettle</groupId>
            <artifactId>kettle-engine</artifactId>
            <version>${kettle.version}</version>
            <exclusions>
                <exclusion>
                    <groupId>org.eclipse.jetty</groupId>
                    <artifactId>jetty-server</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>pentaho-kettle</groupId>
            <artifactId>kettle-dbdialog</artifactId>
            <version>${kettle.version}</version>
        </dependency>
        <dependency>
            <groupId>pentaho-kettle</groupId>
            <artifactId>kettle-ui-swt</artifactId>
            <version>${kettle.version}</version>
        </dependency>
       <dependency>
            <groupId>com.verhas</groupId>
            <artifactId>license3j</artifactId>
            <version>1.0.7</version>
        </dependency>

        <dependency>
            <groupId>pentaho</groupId>
            <artifactId>pdi-osgi-bridge-core</artifactId>
            <version>${kettle.version}</version>
            <exclusions>
                <exclusion>
                    <groupId>org.springframework</groupId>
                    <artifactId>spring-core</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>org.slf4j</groupId>
                    <artifactId>slf4j-log4j12</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>com.google.guava</groupId>
                    <artifactId>guava</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <!-- -->
        <dependency>
            <groupId>pentaho</groupId>
            <artifactId>pentaho-platform-extensions</artifactId>
            <version>${kettle.version}</version>
            <exclusions>
                <exclusion>
                    <artifactId>xbean</artifactId>
                    <groupId>org.apache.xbean</groupId>
                </exclusion>
                <exclusion>
                    <groupId>org.slf4j</groupId>
                    <artifactId>slf4j-log4j12</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>org.springframework</groupId>
                    <artifactId>spring-core</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>javassist</groupId>
                    <artifactId>javassist</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>elasticsearch</groupId>
                    <artifactId>elasticsearch</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>org.apache.ws.commons.schema</groupId>
                    <artifactId>XmlSchema</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>com.google.guava</groupId>
                    <artifactId>guava</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>org.apache.ws.commons.neethi</groupId>
                    <artifactId>neethi</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>org.apache.karaf.jaas</groupId>
                    <artifactId>
                        org.apache.karaf.jaas.modules
                    </artifactId>
                </exclusion>
                <!-- 解决数据服务包冲突 -->
                <exclusion>
                    <groupId>pentaho</groupId>
                    <artifactId>
                        pentaho-hadoop-hive-jdbc-shim
                    </artifactId>
                </exclusion>
                <exclusion>
                    <groupId>woodstox</groupId>
                    <artifactId>wstx-asl</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>xerces</groupId>
                    <artifactId>xercesImpl</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>org.glassfish.metro</groupId>
                    <artifactId>webservices-rt</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>pentaho</groupId>
            <artifactId>pentaho-metaverse-api</artifactId>
            <version>${kettle.version}</version>
            <exclusions>
                <exclusion>
                    <groupId>org.slf4j</groupId>
                    <artifactId>slf4j-log4j12</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>com.fasterxml.jackson.core</groupId>
                    <artifactId>jackson-annotations</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-annotations</artifactId>
            <version>2.8.0</version>
        </dependency>
        <dependency>
            <groupId>pentaho</groupId>
            <artifactId>pentaho-metaverse-core</artifactId>
            <version>${kettle.version}</version>
            <exclusions>
                <exclusion>
                    <groupId>org.springframework</groupId>
                    <artifactId>spring</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>org.apache.cxf</groupId>
                    <artifactId>cxf-rt-bindings-xml</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>org.apache.cxf</groupId>
                    <artifactId>cxf-rt-frontend-jaxrs</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>pentaho</groupId>
            <artifactId>pentaho-metaverse-web</artifactId>
            <version>${kettle.version}</version>
        </dependency>

        <dependency>
            <groupId>pentaho</groupId>
            <artifactId>metastore</artifactId>
            <version>${kettle.version}</version>
            <exclusions>
                <exclusion>
                    <groupId>com.google.guava</groupId>
                    <artifactId>guava</artifactId>
                </exclusion>
            </exclusions>
        </dependency>

        <dependency>
            <groupId>pentaho</groupId>
            <artifactId>pentaho-platform-api</artifactId>
            <version>${kettle.version}</version>
            <exclusions>
                <exclusion>
                    <groupId>org.springframework.security</groupId>
                    <artifactId>spring-security-core</artifactId>
                </exclusion>
            </exclusions>
        </dependency>

        <!--<dependency>
            <groupId>pentaho-kettle</groupId>
            <artifactId>kettle5-log4j-plugin</artifactId>
            <version>6.1.0.1-196</version>
        </dependency>-->
        <!-- https://mvnrepository.com/artifact/org.apache.karaf/org.apache.karaf.util -->
        <dependency>
            <groupId>org.apache.karaf</groupId>
            <artifactId>org.apache.karaf.util</artifactId>
            <version>3.0.3</version>
        </dependency>

        <!-- <dependency>
            <groupId>pentaho-kettle</groupId>
            <artifactId>kettle5-log4j-plugin</artifactId>
            <version>6.1.0.1-196</version>
        </dependency> -->


    ...
    <repositories>
        <repository>
            <id>nexus-aliyun</id>
            <name>Nexus aliyun</name>
            <url>http://maven.aliyun.com/nexus/content/groups/public</url>
        </repository>
        <repository>
            <id>kettle</id>
            <url>https://nexus.pentaho.org/content/groups/omni/</url>
        </repository>
    </repositories>
</project>
X 参考文献
有时需要将一个简单的功能封装为服务,相比python使用flask、web.py的简洁,使用java-web显得太重量级。
幸好,我们可直接在java项目中使用jetty来搭建简易服务

免责声明:文章转载自《[软件过程/软件生命周期模型]软件过程的工具链【待续】》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇使用ArcGIS GP服务之四GP服务发布GBK 编码下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

【原创】简单快速软件开发平台,C/S架构二次开发平台

简单快速软件开发平台,二次开发平台 二次开发平台可根据企业的需求,灵活快速搭建企业业务管理系统,充分满足企业个性化的需求。C/S系统快速开发框架为企业和个人提供快速开发能力,能快速搭建C/S架构模式的企业管理应用系统。C/S系统快速开发框架提供开发大型软件系统的底层模板,基于开发框架的VS解决方案源码,改名为自己的软件系统名称,如:MyERP,MyMES等...

为什么安装了淘宝镜像,永用cnpm安装依赖包会报错,而用npm就不会?报错:cnpm : 无法加载文件 C:Users93457AppDataRoaming pmcnpm.ps1。。。。

cnpm - 解决 " cnpm : 无法加载文件 C:Users93457AppDataRoaming pmcnpm.ps1,因为在此系统上禁止运行脚本。有关详细信息 。。。 "问题描述:明明全局安装了淘宝镜像,却不能用cnpm安装依赖包,一用就报错:如下: 解决方案如下: 1.在win10 系统中搜索框 输入 Windos PowerShell选择...

02_iOS 沙盒及各个目录详解

处于安全考虑,一个iosAPP对系统文件的交互权限被限制在app的沙盒目录下。 在安装一个新的app的时候,安装程序会在沙盒目录下创建许多的容器,每个容器目录都有特定的角色。 bundle容器目录:保存应用程序的包(主bundle的资源等) 数据容器目录:就是我们平时开发中用到的Documents,library temp。运行的时候app可以额外的申请容...

智能手机+DIY红外=万能遥控器

目前好像只有:三星S4.,努比亚大牛,华为荣耀3等几款新机才有红外遥控功能,那我们使用的手机没有这个功能怎么办?不要急我有办法呵呵,本次DIY材料好找又简单,大家都可以亲自试一试!DIY材料:红外二极管2个(没有可以在旧的遥控器上拆),3.5耳机插头一个制作方法:如下图(我辛苦做的图不要盗用哦,给个赞吧!)DIY开始:两个红外二极管反向并到一起焊接焊到3....

测试对象介绍

对于当前的测试行业来说我们最经常测试的主体就是软件(主体功能),但是需要我们明白的是一个软件也不仅仅只有功能需要测试,我们可以将软件分为三个部分组成:功能集合+使用说明书+配置数据 对于一款软件来说从无到有需要不同的过程,我们可以将这个过程分为不同阶段,然后每个阶段都会相应有测试对象 1、需求分析阶段:各种需求规格说明书。 2、软件架构设计:API接口文档...

[转]Mac Port 基本用法总结

Mac Port 基本用法总结 Mac Port 基本用法总结 1. Mac Port的下载地址 http://www.macports.org/install.php 2. Mac Port的说明文档 http://guide.macports.org/ 3. Mac Port中第三方软件下载包存放的默认路径是:/opt/local/var/macport...