Spring boot學習筆記2--pom.xml初探究
阿新 • • 發佈:2018-12-22
新建的springboot_study專案的pom.xml結構如下:
<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.1.0.RELEASE</version> <relativePath/> <!-- lookup parent from repository --> </parent> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <java.version>1.8</java.version> </properties> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <scope>runtime</scope> </dependency> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <optional>true</optional> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> </dependencies> //該maven外掛用於把專案打成jar包 <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> </project>
//從上面可以看出新建的專案依賴於父專案spring-boot-starter-parent
spring-boot-starter-parent結構如下
<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-dependencies</artifactId> <version>2.1.0.RELEASE</version> <relativePath>../../spring-boot-dependencies</relativePath> </parent>
//spring-boot-starter-paren依賴於父專案spring-boot-dependencies
spring-boot-dependencies
<properties> <activemq.version>5.15.7</activemq.version> <antlr2.version>2.7.7</antlr2.version> <appengine-sdk.version>1.9.67</appengine-sdk.version> <artemis.version>2.6.3</artemis.version> <aspectj.version>1.9.2</aspectj.version> <assertj.version>3.11.1</assertj.version> <atomikos.version>4.0.6</atomikos.version> <bitronix.version>2.1.4</bitronix.version> <build-helper-maven-plugin.version>3.0.0</build-helper-maven-plugin.version> <byte-buddy.version>1.9.3</byte-buddy.version> <caffeine.version>2.6.2</caffeine.version> <cassandra-driver.version>3.6.0</cassandra-driver.version> <classmate.version>1.4.0</classmate.version> <commons-codec.version>1.11</commons-codec.version> <commons-dbcp2.version>2.5.0</commons-dbcp2.version> <commons-lang3.version>3.8.1</commons-lang3.version> <commons-pool.version>1.6</commons-pool.version> <commons-pool2.version>2.6.0</commons-pool2.version> <couchbase-cache-client.version>2.1.0</couchbase-cache-client.version> <couchbase-client.version>2.7.0</couchbase-client.version> <derby.version>10.14.2.0</derby.version> <dom4j.version>1.6.1</dom4j.version> <dropwizard-metrics.version>4.0.3</dropwizard-metrics.version> <ehcache.version>2.10.6</ehcache.version> <ehcache3.version>3.6.1</ehcache3.version> <elasticsearch.version>6.4.2</elasticsearch.version> <embedded-mongo.version>2.1.1</embedded-mongo.version> <exec-maven-plugin.version>1.6.0</exec-maven-plugin.version> <flatten-maven-plugin.version>1.0.1</flatten-maven-plugin.version> <flyway.version>5.2.1</flyway.version> <freemarker.version>2.3.28</freemarker.version> <git-commit-id-plugin.version>2.2.5</git-commit-id-plugin.version> <glassfish-el.version>3.0.0</glassfish-el.version> <glassfish-jaxb.version>2.3.1</glassfish-jaxb.version> <groovy.version>2.5.3</groovy.version> <gson.version>2.8.5</gson.version> <h2.version>1.4.197</h2.version> <hamcrest.version>1.3</hamcrest.version> <hazelcast.version>3.11</hazelcast.version> <hazelcast-hibernate5.version>1.2.3</hazelcast-hibernate5.version> <hibernate.version>5.3.7.Final</hibernate.version> <hibernate-validator.version>6.0.13.Final</hibernate-validator.version> <hikaricp.version>3.2.0</hikaricp.version> <hsqldb.version>2.4.1</hsqldb.version> <htmlunit.version>2.33</htmlunit.version> <httpasyncclient.version>4.1.4</httpasyncclient.version> <httpclient.version>4.5.6</httpclient.version> <httpcore.version>4.4.10</httpcore.version> <infinispan.version>9.4.0.Final</infinispan.version> <influxdb-java.version>2.14</influxdb-java.version> <jackson.version>2.9.7</jackson.version> <janino.version>3.0.10</janino.version> <javax-activation.version>1.2.0</javax-activation.version> <javax-annotation.version>1.3.2</javax-annotation.version> <javax-cache.version>1.1.0</javax-cache.version> <javax-jaxb.version>2.3.1</javax-jaxb.version> <javax-jaxws.version>2.3.1</javax-jaxws.version> <javax-jms.version>2.0.1</javax-jms.version> <javax-json.version>1.1.3</javax-json.version> <javax-jsonb.version>1.0</javax-jsonb.version> <javax-mail.version>1.6.2</javax-mail.version> <javax-money.version>1.0.3</javax-money.version> <javax-persistence.version>2.2</javax-persistence.version> <javax-transaction.version>1.3</javax-transaction.version> <javax-validation.version>2.0.1.Final</javax-validation.version> <javax-websocket.version>1.1</javax-websocket.version> <jaxen.version>1.1.6</jaxen.version> <jaybird.version>3.0.5</jaybird.version> <jboss-logging.version>3.3.2.Final</jboss-logging.version> <jboss-transaction-spi.version>7.6.0.Final</jboss-transaction-spi.version> <jdom2.version>2.0.6</jdom2.version> <jedis.version>2.9.0</jedis.version> <jersey.version>2.27</jersey.version> <jest.version>6.3.1</jest.version> <jetty.version>9.4.12.v20180830</jetty.version> <jetty-el.version>8.5.33</jetty-el.version> <jetty-jsp.version>2.2.0.v201112011158</jetty-jsp.version> <jetty-reactive-httpclient.version>1.0.1</jetty-reactive-httpclient.version> <jmustache.version>1.14</jmustache.version> <jna.version>4.5.2</jna.version> <joda-time.version>2.10.1</joda-time.version> <johnzon.version>${johnzon-jsonb.version}</johnzon.version> <johnzon-jsonb.version>1.1.10</johnzon-jsonb.version> <jolokia.version>1.6.0</jolokia.version> <jooq.version>3.11.5</jooq.version> <jsonassert.version>1.5.0</jsonassert.version> <json-path.version>2.4.0</json-path.version> <jstl.version>1.2</jstl.version> <jtds.version>1.3.1</jtds.version> <junit.version>4.12</junit.version> <junit-jupiter.version>5.3.1</junit-jupiter.version> <kafka.version>2.0.0</kafka.version> <kotlin.version>1.2.71</kotlin.version> <lettuce.version>5.1.2.RELEASE</lettuce.version> <liquibase.version>3.6.2</liquibase.version> <log4j2.version>2.11.1</log4j2.version> <logback.version>1.2.3</logback.version> <lombok.version>1.18.2</lombok.version> <mariadb.version>2.3.0</mariadb.version> <maven-antrun-plugin.version>1.8</maven-antrun-plugin.version> <maven-assembly-plugin.version>3.1.0</maven-assembly-plugin.version> <maven-clean-plugin.version>3.1.0</maven-clean-plugin.version> <maven-compiler-plugin.version>3.8.0</maven-compiler-plugin.version> <maven-dependency-plugin.version>3.1.1</maven-dependency-plugin.version> <maven-deploy-plugin.version>2.8.2</maven-deploy-plugin.version> <maven-enforcer-plugin.version>3.0.0-M2</maven-enforcer-plugin.version> <maven-failsafe-plugin.version>2.22.1</maven-failsafe-plugin.version> <maven-help-plugin.version>3.1.0</maven-help-plugin.version> <maven-install-plugin.version>2.5.2</maven-install-plugin.version> <maven-invoker-plugin.version>3.1.0</maven-invoker-plugin.version> <maven-jar-plugin.version>3.1.0</maven-jar-plugin.version> <maven-javadoc-plugin.version>3.0.1</maven-javadoc-plugin.version> <maven-resources-plugin.version>3.1.0</maven-resources-plugin.version> <maven-shade-plugin.version>3.2.0</maven-shade-plugin.version> <maven-site-plugin.version>3.7.1</maven-site-plugin.version> <maven-source-plugin.version>3.0.1</maven-source-plugin.version> <maven-surefire-plugin.version>2.22.1</maven-surefire-plugin.version> <maven-war-plugin.version>3.2.2</maven-war-plugin.version> <micrometer.version>1.1.0</micrometer.version> <mimepull.version>1.9.10</mimepull.version> <mockito.version>2.23.0</mockito.version> <mongodb.version>3.8.2</mongodb.version> <mongo-driver-reactivestreams.version>1.9.2</mongo-driver-reactivestreams.version> <mssql-jdbc.version>6.4.0.jre8</mssql-jdbc.version> <mysql.version>8.0.13</mysql.version> <nekohtml.version>1.9.22</nekohtml.version> <neo4j-ogm.version>3.1.4</neo4j-ogm.version> <netty.version>4.1.29.Final</netty.version> <netty-tcnative.version>2.0.17.Final</netty-tcnative.version> <nio-multipart-parser.version>1.1.0</nio-multipart-parser.version> <pooled-jms-version>1.0.3</pooled-jms-version> <postgresql.version>42.2.5</postgresql.version> <prometheus-pushgateway.version>0.5.0</prometheus-pushgateway.version> <quartz.version>2.3.0</quartz.version> <querydsl.version>4.2.1</querydsl.version> <rabbit-amqp-client.version>5.4.3</rabbit-amqp-client.version> <reactive-streams.version>1.0.2</reactive-streams.version> <reactor-bom.version>Californium-SR2</reactor-bom.version> <rest-assured.version>3.1.1</rest-assured.version> <rxjava.version>1.3.8</rxjava.version> <rxjava2.version>2.2.3</rxjava2.version> <rxjava-adapter.version>1.2.1</rxjava-adapter.version> <saaj-impl.version>1.5.0</saaj-impl.version> <selenium.version>3.14.0</selenium.version> <selenium-htmlunit.version>2.33.0</selenium-htmlunit.version> <sendgrid.version>4.3.0</sendgrid.version> <servlet-api.version>4.0.1</servlet-api.version> <slf4j.version>1.7.25</slf4j.version> <snakeyaml.version>1.23</snakeyaml.version> <solr.version>7.4.0</solr.version> <spring.version>5.1.2.RELEASE</spring.version> <spring-amqp.version>2.1.0.RELEASE</spring-amqp.version> <spring-batch.version>4.1.0.RELEASE</spring-batch.version> <spring-cloud-connectors.version>2.0.3.RELEASE</spring-cloud-connectors.version> <spring-data-releasetrain.version>Lovelace-SR2</spring-data-releasetrain.version> <spring-framework.version>${spring.version}</spring-framework.version> <spring-hateoas.version>0.25.0.RELEASE</spring-hateoas.version> <spring-integration.version>5.1.0.RELEASE</spring-integration.version> <spring-kafka.version>2.2.0.RELEASE</spring-kafka.version> <spring-ldap.version>2.3.2.RELEASE</spring-ldap.version> <spring-plugin.version>1.2.0.RELEASE</spring-plugin.version> <spring-restdocs.version>2.0.2.RELEASE</spring-restdocs.version> <spring-retry.version>1.2.2.RELEASE</spring-retry.version> <spring-security.version>5.1.1.RELEASE</spring-security.version> <spring-session-bom.version>Bean-RELEASE</spring-session-bom.version> <spring-ws.version>3.0.4.RELEASE</spring-ws.version> <sqlite-jdbc.version>3.25.2</sqlite-jdbc.version> <statsd-client.version>3.1.0</statsd-client.version> <sun-mail.version>${javax-mail.version}</sun-mail.version> <thymeleaf.version>3.0.11.RELEASE</thymeleaf.version> <thymeleaf-extras-data-attribute.version>2.0.1</thymeleaf-extras-data-attribute.version> <thymeleaf-extras-java8time.version>3.0.1.RELEASE</thymeleaf-extras-java8time.version> <thymeleaf-extras-springsecurity.version>3.0.4.RELEASE</thymeleaf-extras-springsecurity.version> <thymeleaf-layout-dialect.version>2.3.0</thymeleaf-layout-dialect.version> <tomcat.version>9.0.12</tomcat.version> <unboundid-ldapsdk.version>4.0.8</unboundid-ldapsdk.version> <undertow.version>2.0.14.Final</undertow.version> <versions-maven-plugin.version>2.7</versions-maven-plugin.version> <webjars-hal-browser.version>3325375</webjars-hal-browser.version> <webjars-locator-core.version>0.35</webjars-locator-core.version> <wsdl4j.version>1.6.3</wsdl4j.version> <xml-apis.version>1.4.01</xml-apis.version> <xml-maven-plugin.version>1.0.2</xml-maven-plugin.version> <xmlunit2.version>2.6.2</xmlunit2.version> </properties>
//這裡規定了各種jar包的版本號,所以springboot_study中引入spring-boot-dependencies中規定jar時不需要指定版本號
哪麼專案需要的jar包是怎嘛引入的那?
spring-boot-starter-web引入了開發所需的web模組
spring-boot-starter-test引入了開發需要的測試模組,包括mockito,Junit,hamcres等
點開spring-boot-starter-web可以看到以下結構:
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> <version>2.1.0.RELEASE</version> <scope>compile</scope> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-json</artifactId> <version>2.1.0.RELEASE</version> <scope>compile</scope> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-tomcat</artifactId> <version>2.1.0.RELEASE</version> <scope>compile</scope> </dependency> <dependency> <groupId>org.hibernate.validator</groupId> <artifactId>hibernate-validator</artifactId> <version>6.0.13.Final</version> <scope>compile</scope> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-web</artifactId> <version>5.1.2.RELEASE</version> <scope>compile</scope> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>5.1.2.RELEASE</version> <scope>compile</scope> </dependency>