Spring IO platform
Spring IO is a cohesive, versioned platform for building modern applications.
It is a modular, enterprise-grade distribution that delivers a curated set of dependencies while keeping developers in full control of deploying only the parts they need. Spring IO is 100% open source, lean, and modular.
作用
就是指定引入固定的 maven(gradle) parent,默认各个 jar 的版本都经过充分的测试,不会出现冲突。很人性化的设计。
原理
没使用过 gradle,主要谈下 maven 的理解。
就是定义了一堆父类 pom.xml
属性文件,规定了各种 jar 包的版本号。我们使用时只需要直接使用即可,无需指定版本号
Quick Start
新建 maven 项目 spring-io-learn
pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<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>
<groupId>com.ryo</groupId>
<artifactId>spring-io-learn</artifactId>
<version>1.0-SNAPSHOT</version>
<!--声明-->
<dependencyManagement>
<dependencies>
<dependency>
<groupId>io.spring.platform</groupId>
<artifactId>platform-bom</artifactId>
<version>Athens-SR6</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<!--指定需要的jar-->
</project>
为了方便起见,我们测试下 Junit
添加一个不指定版本号的 Junit 依赖,如下:
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
运行命令
mvn clean install
会发现下载的 Junit 对应的 版本为 4.12
属性
直接点击 pom
可以看到对应的属性如下:
如果你想修改某个版本号,直接指定修改即可。
<properties>
<spring-integration-flow.version>1.0.0.RELEASE</spring-integration-flow.version>
<spring-integration-kafka.version>1.3.1.RELEASE</spring-integration-kafka.version>
<spring-integration-splunk.version>1.1.0.RELEASE</spring-integration-splunk.version>
<spring-ldap.version>2.1.0.RELEASE</spring-ldap.version>
<spring-web-flow.version>2.4.5.RELEASE</spring-web-flow.version>
<spring-web-services.version>${spring-ws.version}</spring-web-services.version>
<aopalliance.version>1.0</aopalliance.version>
<apacheds.version>1.5.5</apacheds.version>
<apache-shared-ldap.version>0.9.15</apache-shared-ldap.version>
<avro.version>1.8.2</avro.version>
<axiom.version>1.2.20</axiom.version>
<boon.version>0.33</boon.version>
<bouncycastle.version>1.54</bouncycastle.version>
<bsh.version>2.0b4</bsh.version>
<c3p0.version>0.9.5.2</c3p0.version>
<cas-client.version>3.4.1</cas-client.version>
<castor.version>1.4.1</castor.version>
<commonj.version>1.1.1</commonj.version>
<commons-cli.version>1.3.1</commons-cli.version>
<commons-fileupload.version>1.3.2</commons-fileupload.version>
<commons-io.version>2.5</commons-io.version>
<commons-httpclient.version>3.1</commons-httpclient.version>
<commons-lang.version>2.6</commons-lang.version>
<commons-lang3.version>3.4</commons-lang3.version>
<commons-logging.version>1.2</commons-logging.version>
<commons-net.version>3.5</commons-net.version>
<curator.version>2.11.1</curator.version>
<eclipselink.version>2.6.4</eclipselink.version>
<eclipselink-javax-persistence.version>2.1.1</eclipselink-javax-persistence.version>
<evo-inflector.version>1.2.2</evo-inflector.version>
<findbugs-jsr305.version>3.0.2</findbugs-jsr305.version>
<findbugs-annotations.version>2.0.3</findbugs-annotations.version>
<gs-collections.version>5.1.0</gs-collections.version>
<guava.version>17.0</guava.version>
<guice.version>3.0</guice.version>
<hadoop.version>2.2.0</hadoop.version>
<hbase.version>0.96.2-hadoop2</hbase.version>
<hessian.version>4.0.38</hessian.version>
<hive.version>0.12.0</hive.version>
<ibatis-sqlmap.version>2.3.4.726</ibatis-sqlmap.version>
<itext.version>2.1.7</itext.version>
<jackson1.version>1.9.13</jackson1.version>
<jasperreports.version>6.3.1</jasperreports.version>
<jamon.version>2.81</jamon.version>
<javax-activation.version>1.1.1</javax-activation.version>
<javax-annotation.version>1.0</javax-annotation.version>
<javax-batch.version>1.0.1</javax-batch.version>
<javax-cdi.version>1.2</javax-cdi.version>
<javax-connector.version>1.5</javax-connector.version>
<javax-ejb.version>3.2</javax-ejb.version>
<javax-el.version>2.2.5</javax-el.version>
<javax-enterprise-concurrent.version>1.0</javax-enterprise-concurrent.version>
<javax-faces.version>2.2</javax-faces.version>
<javax-inject.version>1</javax-inject.version>
<javax-interceptor.version>1.2</javax-interceptor.version>
<javax-jax-rs.version>2.0.1</javax-jax-rs.version>
<javax-jdo.version>3.0.1</javax-jdo.version>
<javax-jsp.version>2.3.2-b02</javax-jsp.version>
<javax-jstl.version>1.2.1</javax-jstl.version>
<javax-money.version>1.0.1</javax-money.version>
<javax-portlet.version>2.0</javax-portlet.version>
<javax-validation.version>1.1.0.Final</javax-validation.version>
<javax-websocket.version>1.1</javax-websocket.version>
<jbatch-tck.version>1.0</jbatch-tck.version>
<jeromq.version>0.3.4</jeromq.version>
<jettison.version>1.2</jettison.version>
<jibx.version>1.2.6</jibx.version>
<jline.version>2.14.4</jline.version>
<jopt-simple.version>5.0.3</jopt-simple.version>
<jredis.version>06052013</jredis.version>
<jruby.version>1.7.27</jruby.version>
<jsch.version>0.1.54</jsch.version>
<jsr250.version>1.0</jsr250.version>
<jxl.version>2.6.12</jxl.version>
<kafka.version>0.8.2.2</kafka.version>
<kite.version>0.13.0</kite.version>
<kryo.version>3.0.3</kryo.version>
<ldapbp.version>1.0</ldapbp.version>
<ldapsdk.version>4.1</ldapsdk.version>
<lettuce.version>3.5.0.Final</lettuce.version>
<log4j.version>1.2.17</log4j.version>
<myfaces.version>2.2.12</myfaces.version>
<okhttp.version>2.7.5</okhttp.version>
<okhttp3.version>3.3.1</okhttp3.version>
<openhft-chronicle.version>3.4.4</openhft-chronicle.version>
<openhft-lang.version>6.6.16</openhft-lang.version>
<openjpa.version>2.4.2</openjpa.version>
<neo4j.version>2.3.2</neo4j.version>
<neo4j-cypher-dsl.version>2.0.1</neo4j-cypher-dsl.version>
<neo4j-spatial.version>0.12-neo4j-2.0.1</neo4j-spatial.version>
<netty.version>4.0.48.Final</netty.version>
<objenesis.version>2.4</objenesis.version>
<ognl.version>2.6.11</ognl.version>
<openid4java.version>0.9.6</openid4java.version>
<paho-mqttv3-client.version>1.1.1</paho-mqttv3-client.version>
<pig.version>0.12.1</pig.version>
<poi.version>3.14</poi.version>
<protobuf.version>2.6.1</protobuf.version>
<protobuf-java-format.version>1.4</protobuf-java-format.version>
<quartz.version>2.2.3</quartz.version>
<rabbit-amqp-client.version>3.6.6</rabbit-amqp-client.version>
<rabbit-http-client.version>1.0.0.RELEASE</rabbit-http-client.version>
<reactive-streams.version>1.0.0</reactive-streams.version>
<rest-assured.version>2.9.0</rest-assured.version>
<rometools.version>1.6.1</rometools.version>
<selenium-htmlunit-driver.version>${selenium.version}</selenium-htmlunit-driver.version>
<smack4.version>4.1.9</smack4.version>
<snappy.version>1.1.2.6</snappy.version>
<splunk.version>1.3.0</splunk.version>
<spullara-redis.version>0.7</spullara-redis.version>
<sun-facelets.version>1.1.14</sun-facelets.version>
<sun-jsf.version>2.2.14</sun-jsf.version>
<sun-saaj.version>1.3.28</sun-saaj.version>
<taglibs-standard.version>1.2.5</taglibs-standard.version>
<testng.version>6.9.10</testng.version>
<threetenbp.version>1.3.5</threetenbp.version>
<tiles.version>3.0.7</tiles.version>
<tiles-request.version>1.0.6</tiles-request.version>
<tyrus.version>1.3.5</tyrus.version>
<typica.version>1.3</typica.version>
<unboundid.version>3.1.1</unboundid.version>
<velocity-tools-view.version>1.4</velocity-tools-view.version>
<webjars-json-editor.version>0.7.21</webjars-json-editor.version>
<websphere-uow.version>6.0.2.17</websphere-uow.version>
<woodstox.version>4.4.1</woodstox.version>
<wss4j.version>1.6.19</wss4j.version>
<wss4j2.version>2.1.9</wss4j2.version>
<xmlbeans.version>2.6.0</xmlbeans.version>
<xmlschema.version>2.2.2</xmlschema.version>
<xmlunit.version>1.6</xmlunit.version>
<xom.version>1.2.5</xom.version>
<xstream.version>1.4.10</xstream.version>
<xws-security.version>3.0</xws-security.version>
<yammer-metrics.version>2.2.0</yammer-metrics.version>
</properties>