eclipse+maven+kotlin+web+Spring+springMVC+ibatis的环境配置

来源:互联网 发布:男士休闲短靴 知乎 编辑:程序博客网 时间:2024/06/04 20:06


eclipse一直用,用惯了,懒得换idea编辑器,就想着在以前的java web 的项目上改用kotlin语言编写

想学新的语言kotlin,想学maven管理工具,想现学现用,就自己去找博客论坛去配环境玩

但是苦于国内的关于这种配置的博客太少,花了半天多的时间,算是完成了,可以用kotlin写web项目玩了

(首先我写的不一定对,有错要说出来)


首先要确定版本的问题,java 用JDK 1.8以上的,要不然kotlin插件安装不上(我是这样的),tomcat最好用新一点,和JDK版本保持一致,要不然就会出现编译的class和发布的class的文件版本不一致的问题,gradle有二进制和完整版两种文件,建议使用完整版,maven更适合于eclipse,建议使用maven


说正事:gradle环境搭建:http://codemcx.blog.51cto.com/9638142/1936567
              maven环境搭建:http://www.mamicode.com/info-detail-1855085.html(转载)
转载的是gradle,maven的这些插件的使用方式
我要说一下我的配置
也就是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">

这一段是maven的pom.xml头部,xml解析时必须要的部分


<modelVersion>4.0.0</modelVersion>
 <groupId>officeautokotlin</groupId>
 <artifactId>maven</artifactId>
 <version>0.0.1-SNAPSHOT</version>
 <packaging>war</packaging>

这一段是基本信息,groupId是指项目所在的组,而artifactld指的是项目名,packaging指的是项目打包成什么类型的文件


<properties>
 <spring.version>4.2.5.RELEASE</spring.version>
 <jackson.version>2.7.3</jackson.version>
 <kotlin.version>1.1.2</kotlin.version>
-<!--解决打包时的编码问题  -->
 <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  </properties>
这段properties指的是项目spring和kotlin的交互使用jackson,由于spring是基于java的框架所以这一段配置必不可少

<dependencies>
-<dependency>
 <groupId>com.github.axet</groupId>
 <artifactId>kaptcha</artifactId>
 <version>0.0.9</version>
  </dependency>
dependencies是dependency(依赖)的父节点,这个依赖的意思是kaptcha(验证码)的依赖


<dependency>
 <groupId>org.mybatis</groupId>
 <artifactId>mybatis</artifactId>
 <version>3.2.8</version>
  </dependency>
mybatis的依赖


<dependency>
 <groupId>org.mybatis</groupId>
 <artifactId>mybatis-spring</artifactId>
 <version>1.3.0</version>
  </dependency>
mybatis由spring管理的依赖


<dependency>
 <groupId>junit</groupId>
 <artifactId>junit</artifactId>
 <version>4.12</version>
 <scope>test</scope>
  </dependency>
junit的依赖


<dependency>
 <groupId>org.springframework</groupId>
 <artifactId>spring-core</artifactId>
 <version>${spring.version}</version>
  </dependency>
spring核心包的依赖


<dependency>
 <groupId>org.springframework</groupId>
 <artifactId>spring-context</artifactId>
 <version>${spring.version}</version>
  </dependency>
spring-context的依赖


<dependency>
 <groupId>org.springframework</groupId>
 <artifactId>spring-beans</artifactId>
 <version>${spring.version}</version>
  </dependency>
spring-bean的依赖


<dependency>
 <groupId>org.springframework</groupId>
 <artifactId>spring-web</artifactId>
 <version>${spring.version}</version>
  </dependency>
spring-web的依赖

<dependency>
 <groupId>org.springframework</groupId>
 <artifactId>spring-webmvc</artifactId>
 <version>${spring.version}</version>
  </dependency>
spring-webmvc的依赖

<!--jackson作为controller层的json转换器 -->
-<dependency>
 <groupId>com.fasterxml.jackson.core</groupId>
 <artifactId>jackson-core</artifactId>
 <version>${jackson.version}</version>
  </dependency>
-<dependency>
 <groupId>com.fasterxml.jackson.core</groupId>
 <artifactId>jackson-databind</artifactId>
 <version>${jackson.version}</version>
  </dependency>
-<dependency>
 <groupId>javax</groupId>
 <artifactId>javaee-api</artifactId>
 <version>6.0</version>
 <scope>provided</scope>
  </dependency>
-<dependency>
 <groupId>org.jetbrains.kotlin</groupId>
 <artifactId>kotlin-stdlib</artifactId>
 <version>${kotlin.version}</version>
  </dependency>
  </dependencies>

这一段依赖最重要,由于这段依赖,kotlin语言才能被解析,被spring识别
是讲kotlin和java se链接起来的依赖
-
<build>
- <!-- 只编译Kotlin时配置 -->
- <!-- <sourceDirectory>${project.basedir}/src/main/kotlin</sourceDirectory>
    <testSourceDirectory>${project.basedir}/src/test/kotlin</testSourceDirectory> --> 
<plugins>
-<!-- Kotlin编译插件必须配置在Maven编译插件之前 -->
<plugin>
 <groupId>org.jetbrains.kotlin</groupId>
 <artifactId>kotlin-maven-plugin</artifactId>
 <version>${kotlin.version}</version>
<executions>
<execution>
 <id>compile</id>
<goals>
 <goal>compile</goal>
  </goals>
-<!--
 Kotlin与Java代码混编时指定资源目录 
  -->
<configuration>
<sourceDirs>
 <sourceDir>${project.basedir}/src/main/kotlin</sourceDir>
 <sourceDir>${project.basedir}/src/main/java</sourceDir>
  </sourceDirs>
  </configuration>
  </execution>
<execution>
 <id>test-compile</id>
<goals>
 <goal>test-compile</goal>
  </goals>
<configuration>
<sourceDirs>
 <sourceDir>${project.basedir}/src/test/kotlin</sourceDir>
 <sourceDir>${project.basedir}/src/test/java</sourceDir>
  </sourceDirs>
  </configuration>
  </execution>
  </executions>
  </plugin>
接下来的这段是编译了
如果之编译kotlin第一段写上,当然不建议
接下来写plugin(插件)
指定了kotlin代码的编译位置,以及maven和kotlin结合的插件
自己想指定自己的目录都随意

<plugin>
 <groupId>org.apache.maven.plugins</groupId>
 <artifactId>maven-compiler-plugin</artifactId>
 <version>3.5.1</version>
<configuration>
-<!--
<encoding>utf-8</encoding>
  -->
 <source>1.7</source>
 <target>1.7</target>
  </configuration>
<executions>
-<!--
 替换会被 maven 特别处理的 default-compile 
  -->
<execution>
 <id>default-compile</id>
 <phase>none</phase>
  </execution>
-<!--
 替换会被 maven 特别处理的 default-testCompile 
  -->
<execution>
 <id>default-testCompile</id>
 <phase>none</phase>
  </execution>
<execution>
 <id>java-compile</id>
 <phase>compile</phase>
<goals>
 <goal>compile</goal>
  </goals>
  </execution>
<execution>
 <id>java-test-compile</id>
 <phase>test-compile</phase>
<goals>
 <goal>testCompile</goal>
  </goals>
  </execution>
  </executions>
  </plugin>

这一段是maven自己指定编译的插件

<plugin>
 <groupId>org.apache.maven.plugins</groupId>
 <artifactId>maven-war-plugin</artifactId>
 <version>2.6</version>
<configuration>
 <warName>maven</warName>
  </configuration>
  </plugin>
<plugin>
 <groupId>org.apache.tomcat.maven</groupId>
 <artifactId>tomcat7-maven-plugin</artifactId>
 <version>2.2</version>
<configuration>
 <port>8080</port>
 <server>tomcat7</server>
 <path>/maven</path>
-<!--
 应用的部署context path 
  -->
  </configuration>
  </plugin>
  </plugins>
  </build>
  </project>
这一段是自己指定打包为war包的插件
关于pom.xml的配置就是如此
如果需要新的依赖或者jar包可以自己导入或者自己写依赖
kotlin有一个lateinit的修饰符在写spring的时候一定要记得用,当然,现在kotlin的坑很多,踩踩玩玩是可以的
本文大部分依赖都是从其他博客找到的,侵权立删







 

原创粉丝点击