使用Maven构建工具开发Kotlin Web应用程序

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用Maven构建工具开发Kotlin Web应用程序相关的知识,希望对你有一定的参考价值。

1.安装Maven

下载地址http://maven.apache.org/download.cgi。Windows用户下载zip包。笔者使用的Maven下载链接: http://pan.baidu.com/s/1qYBFZcw 密码: gmer

下载后的zip包如下

  技术分享


将zip包解压。在F盘新建一个Maven目录(新建目录的位置自定义)用来放置解压后的文件夹,然后将apache-maven-3.2.3文件夹复制到F:\Maven下

  技术分享

配置Gradle环境变量,在系统环境变量中新建环境变量MAVEN_HOME,变量值为F:\Maven\apache-maven-3.2.3(Maven的根目录)


   技术分享


然后点击确定,在系统环境变量Path中追加%MAVEN_HOME%\bin;指向Maven的bin目录

CMD运行mvn -version,如出现以下截图中的内容说明安装成功


  技术分享

2.配置Maven

打开Eclipse,选择Window -> Preferences,然后展开Maven选择Installations,点击Add

 

  技术分享


点击Directory,在弹出的对话框中选择Maven的安装目录,然后点击Finish


  技术分享


然后勾选新添加的maven选项,点击OK


  技术分享



修改Maven配文件,这里使用安装的Maven配置文件。选择User Settings,点击Browser


  技术分享


选择Maven安装目录下conf目录下的settings.xml文件,然后点击Update Settings,点击OK


  技术分享


3.开发Web应用程序

在Eclipse中新建Maven Project。选择New -> Maven Project,然后点击Next


  技术分享


Group Id输入com.test,Artifact Id输入maven。Packaging选择war,然后点击Finish


  技术分享

  技术分享


此时新建的Maven Project已经是Web项目无需转换了。上图显示红色的x,因为这是一个web项目缺少web.xml配置文件。我们从其它地方复制META-INF和WEB-INF两目录过来,也可以从web项目中复制。结构如下


  技术分享


打开pom.xml配置文件。我们需要配置Kotlin插件和Kotlin标准库。配置如下

<properties>
    <kotlin.version>1.1.2</kotlin.version>
</properties>
 
<dependencies>
    <dependency>
        <groupId>org.jetbrains.kotlin</groupId>
        <artifactId>kotlin-stdlib</artifactId>
        <version>${kotlin.version}</version>
    </dependency>
 </dependencies>
 
<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>
        
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.5.1</version>
            <configuration>
                <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>
    </plugins>
  </build>

添加JavaEE类库

<dependency>
    <groupId>javax</groupId>
    <artifactId>javaee-api</artifactId>
    <version>6.0</version>
    <scope>provided</scope>
</dependency>

添加war包插件

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-war-plugin</artifactId>  
    <version>2.6</version>  
    <configuration>  
        <warName>maven</warName>  
    </configuration>  
</plugin>

为了运行web程序还需要tomcat插件

<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>

保存后会自动下载jar包依赖


  技术分享



选择项目右击,选择Maven -> Update Project,点击OK


  技术分享


然后在webapp下新建一个index.jsp,在index.jsp中输入index



新建一个sourse目录为src/main/kotlin用来存放Kotlin源代码。点击Finish


  技术分享

  技术分享


选择Kotin视图可快速新建Kotlin Class



选中src/main/kotlin,选择New -> Kotlin Class,新建一个HelloWorld.kt文件


  技术分享

  技术分享


在HelloWorld.kt中编写如下代码

package com.test.servlet
 
import javax.servlet.http.HttpServlet
import javax.servlet.http.HttpServletRequest
import javax.servlet.http.HttpServletResponse
import javax.servlet.annotation.WebServlet
 
@WebServlet("/helloworld")
class HelloWorld : HttpServlet(){
override fun doGet(req: HttpServletRequest, resp: HttpServletResponse) {
        println("enter the doGet method");
        resp.writer.write("Hello, World")
    }
}

4.运行应用程序


在JavaEE视图中右击项目选择Run as -> Run Configurations -> Maven Build,如果是第一次运行会弹出如下对话框


 技术分享


在Goals一栏输入tomcat7:run,然后点击Run,运行内嵌的tomcat


  技术分享


控制台最后输出如下截图内容则说明启动成功


  技术分享


在浏览器地址栏输入http://localhost:8080/maven


  技术分享


输入Servlet的访问路径http://localhost:8080/maven/helloworld


  技术分享



本文出自 “love_programme-love_life” 博客,请务必保留此出处http://codemcx.blog.51cto.com/9638142/1936632

以上是关于使用Maven构建工具开发Kotlin Web应用程序的主要内容,如果未能解决你的问题,请参考以下文章

用Maven构建Java Web开发环境(Jetty容器)

使用 kotlin-maven-plugin 构建的 jar 中的 Kotlin 类

Jetty使用教程(四:23)—Jetty开发指南

转构建maven web项目

使用Spring Boot开发 “Hello World” Web应用

Kotlin 编程语言成为其 Android 应用程序开发人员的首选语言