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

时间: 2024-10-09 07:05:08

使用Maven构建工具开发Kotlin Web应用程序的相关文章

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

1.安装Gradle 下载地址https://gradle.org/install.笔者使用的Gradle下载地址链接: http://pan.baidu.com/s/1gf9qyC7 密码: u3k6.注意Gradle要求jdk1.7或更高 下载后的zip包如下 将zip包解压,在F盘新建一个Gradle目录(新建目录的位置自定义)用来放置解压后的文件夹,然后将gradle-3.5文件夹复制到F:\Gradle下 配置Gradle环境变量,在系统环境变量path中追加F:\Gradle\gra

maven-bundle-plugin插件, 用maven构建基于osgi的web应用

maven-bundle-plugin 2.4.0以下版本导出META-INF中的内容到MANIFEST.MF中 今天终于把maven-bundle-plugin不能导出META-INF中的内容到Export-Package中的问题解决了,因为产品用的是OSGI框架,用到的第三方JAR包需要加载META-INF/XX/XX.xml这个内容,但在运行的时候getResource返回null. 经一番调查发现META-XX.XX这个包名没有导出,手动去修改MANIFEST.MF可以解决问题.但产品的

Maven构建Hadoop开发环境

Maven构建Hadoop开发环境 软件环境:Eclipse Kepler x64 & Hadoop 1.2.1 & Maven 3 硬件环境:Centos 6.5 x64 1.Maven创建项目 使用CMD命令在工作空间执行 E:\ws\mvn archetype:generate -DarchetypeGroupId=org.apache.maven.archetypes -DgroupId=org.conan.myhadoop.mr -DartifactId=myHadoop -Dp

ADF_Tutorials系列04_Getting Started_使用Oracle ADF开发富Web应用程序(Part2)

二.案例实现 - Create JSF Web Pages 二.案例实现 - Add More Complex Business Services 二.案例实现 - Create a Page Flow 二.案例实现 - Use ADF Faces Framework Features ADF_Tutorials系列04_Getting Started_使用Oracle ADF开发富Web应用程序(Part2)

第三章 Maven构建 Java Spring Boot Web项目

3.1   认识Srping Boot Spring Boot是一个框架,是一种全新的编程规范,它的产生简化了对框架的使用,简化了Spring众多的框架中大量的繁琐的配置文件,所以说Spring Boot是一个服务于框架的框架,服务范围是简化文件的配置. Spring Boot的核心功能: 独立运行的spring项目:可以以jar包的形式独立运行,通过Java -jar xx.jar来运行. 内嵌的servlet容器:可以选择内嵌的Tomcat.Jetty或者Undertow. 提供starte

使用 jQuery UI 和 jQuery 插件构建更好的 Web 应用程序

简介: 对于那些使用 JavaScript 和 jQuery 库从桌面应用程序转向 Web 应用程序的开发人员来说,他们还不习惯去考虑应用程序基本的外观,因为这些以前都是由操作系统来处理的.了解 jQuery UI,一个基于 jQuery 的 UI 工具箱,使创建漂亮的界面更为容易.本文同时也介绍了一些 jQuery 插件,可以加速 Web 开发并有助于创建我们所熟悉的,且流畅.直观.灵活的界面. 简介 如果您是一个传统桌面应用程序开发人员,并且正在转向开发 Web 应用程序,在学习 HTML

构建 iOS 风格移动 Web 应用程序的8款开发框架

使用 HTML5,CSS3 和 JavaScript 开发移动应用经过实践证明是一种可行的方式.这里收录了几款 iOS 风格的手机应用程序开发框架,帮助您使用擅长的 Web 技术来开发移动应用程序.这些工具大多都基于 HTML & CSS,而另一些则可能需要使用 JavaScript 库. Chocolate Chip UI ChocolateChip-UI 是一个移动 Web 开发框架,使用 HTML5,CSS 和 JavaScript.功能强大,使用简单!支持 iOS7 风格的外观和体验.

Starting系列4_使用ADF开发富Web应用程序之维护User Interface(Part1)

本教程通过一个简单的场景的构建富internet应用程序提供了一个用户界面来访问数据库表. 创建一个完整的应用程序包括业务服务.用户接口和页面流. 案例描述:创建一个实验指南来查询Department和Employee,创建多个JSF页面来让你查询和更新数据在数据库中 案例目的如下: Part 1: Creating a Fusion Web Application and Building the Business Services Step 1: Create a Fusion Web Ap

ADF_Starting系列5_使用ADF开发富Web应用程序之维护User Interface(Part2)

2015-01-01 Created By BaoXinjian 一.摘要 本教程通过一个简单的场景的构建富internet应用程序提供了一个用户界面来访问数据库表. 创建一个完整的应用程序包括业务服务.用户接口和页面流. 案例描述:创建一个实验指南来查询Department和Employee,创建多个JSF页面来让你查询和更新数据在数据库中 案例目的如下: Part 1: Creating a Fusion Web Application and Building the Business S