Overview
接下來所有代碼都會放在同一個 Maven 工程中掷漱,所以以下先創(chuàng)建一個 Maven 項目。
建立工程
首先打開 IDEA沃斤,選擇 File
-> New
-> Project
![](http://7xlqqp.com1.z0.glb.clouddn.com/jgsk/04/new_project.png)
在彈出的對話框左側(cè)選擇 Maven
越败,然后選擇 Next
馋评,進(jìn)入下一個界面。
![](http://7xlqqp.com1.z0.glb.clouddn.com/jgsk/04/create_maven_01.png)
接著在 GroupId
一欄填入 com.bookislife
瞳抓,在 ArtifactId
一欄填入 jgsk
埃疫,繼續(xù) Next
![](http://7xlqqp.com1.z0.glb.clouddn.com/jgsk/04/create_maven_02.png)
Project name
一欄填入 JGSK
,Project location
為項目存放地址孩哑,隨便填栓霜,最后點擊 Finish
完成工程的創(chuàng)建。
![](http://7xlqqp.com1.z0.glb.clouddn.com/jgsk/04/create_maven_03.png)
然后在工程的根目錄下執(zhí)行以下命令創(chuàng)建各目錄
? JGSK git:(master) ? mkdir -p src/main/java/com/bookislife/jgsk/java
? JGSK git:(master) ? mkdir -p src/main/groovy/com/bookislife/jgsk/groovy
? JGSK git:(master) ? mkdir -p src/main/scala/com/bookislife/jgsk/scala
? JGSK git:(master) ? mkdir -p src/main/kotlin/com/bookislife/jgsk/kotlin
? JGSK git:(master) ? mkdir -p src/test/java/com/bookislife/jgsk/java
? JGSK git:(master) ? mkdir -p src/test/groovy/com/bookislife/jgsk/groovy
? JGSK git:(master) ? mkdir -p src/test/scala/com/bookislife/jgsk/scala
? JGSK git:(master) ? mkdir -p src/test/kotlin/com/bookislife/jgsk/kotlin
安裝 IDEA 插件
在編寫程序前横蜒,還需要為 IDEA 安裝幾個插件胳蛮,安裝步驟如下
選擇 Settings (Mac 平臺為 Preferences)
- Plugins
- Browse repositories
,在彈出的對話框中的輸入框中輸入以下幾個插件并安裝丛晌,安裝完畢后重啟 IDEA
![](http://7xlqqp.com1.z0.glb.clouddn.com/jgsk/04/install_plugins.png)
需要安裝的插件有以下幾個
- Scala
- GMavenPlus IntelliJ Plugin
- Groovy
- Kotlin
修改 Pom.xml 文件
接著打開工程根目錄下的 pom.xml
文件仅炊,填入以下內(nèi)容
<?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.bookislife</groupId>
<artifactId>jgsk</artifactId>
<version>1.0-SNAPSHOT</version>
<properties>
<project.build.encoding>UTF-8</project.build.encoding>
<jdk.version>1.8</jdk.version>
<maven-compiler-plugin.verion>3.2</maven-compiler-plugin.verion>
<maven-resources-plugin.version>2.7</maven-resources-plugin.version>
<groovy.version>2.4.9</groovy.version>
<gmavenplus-plugin.version>1.5</gmavenplus-plugin.version>
<scala.version>2.12.1</scala.version>
<scala-maven-plugin.version>3.2.0</scala-maven-plugin.version>
<kotlin.version>1.1.0</kotlin.version>
</properties>
<repositories>
<repository>
<id>sonatype.oss.snapshots</id>
<name>Sonatype OSS Snapshot Repository</name>
<url>http://oss.sonatype.org/content/repositories/snapshots</url>
<releases>
<enabled>false</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>sonatype.oss.snapshots</id>
<name>Sonatype OSS Snapshot Repository</name>
<url>http://oss.sonatype.org/content/repositories/snapshots</url>
<releases>
<enabled>false</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</pluginRepository>
</pluginRepositories>
<dependencies>
<dependency>
<groupId>org.codehaus.groovy</groupId>
<artifactId>groovy-all</artifactId>
<version>${groovy.version}</version>
</dependency>
<dependency>
<groupId>org.scala-lang</groupId>
<artifactId>scala-library</artifactId>
<version>${scala.version}</version>
</dependency>
<dependency>
<groupId>org.jetbrains.kotlin</groupId>
<artifactId>kotlin-stdlib</artifactId>
<version>${kotlin.version}</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>${maven-compiler-plugin.verion}</version>
<configuration>
<source>${jdk.version}</source>
<target>${jdk.version}</target>
<encoding>${project.build.encoding}</encoding>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<version>${maven-resources-plugin.version}</version>
</plugin>
<plugin>
<groupId>org.codehaus.gmavenplus</groupId>
<artifactId>gmavenplus-plugin</artifactId>
<version>${gmavenplus-plugin.version}</version>
<executions>
<execution>
<phase>process-sources</phase>
<goals>
<goal>compile</goal>
<goal>testCompile</goal>
</goals>
<configuration>
<sources>
<source>
<directory>src/main/groovy</directory>
</source>
</sources>
<testSources>
<source>
<directory>src/test/groovy</directory>
</source>
</testSources>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>net.alchim31.maven</groupId>
<artifactId>scala-maven-plugin</artifactId>
<version>${scala-maven-plugin.version}</version>
<executions>
<execution>
<phase>process-sources</phase>
<goals>
<goal>compile</goal>
<goal>testCompile</goal>
</goals>
<configuration>
<sourceDir>src/main/scala</sourceDir>
<testSourceDir>src/test/scala</testSourceDir>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.jetbrains.kotlin</groupId>
<artifactId>kotlin-maven-plugin</artifactId>
<version>${kotlin.version}</version>
<executions>
<execution>
<id>compile</id>
<phase>process-sources</phase>
<goals>
<goal>compile</goal>
</goals>
<configuration>
<sourceDirs>
<source>src/main/kotlin</source>
</sourceDirs>
</configuration>
</execution>
<execution>
<id>test-compile</id>
<phase>process-test-sources</phase>
<goals>
<goal>test-compile</goal>
</goals>
<configuration>
<sourceDirs>
<source>src/test/kotlin</source>
</sourceDirs>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
修改完 pom.xml
后進(jìn)行保存。接著選擇該 pom.xml
文件茵乱,單擊右鍵選擇 Maven
- Reimport
茂洒,執(zhí)行完成后左邊工程的 main
下的目錄文件夾名應(yīng)該除了 kotlin
之外都變成了藍(lán)色,test
下除了 kotlin
之外都變成了綠色。
為了使 IDEA 也認(rèn)出 kotlin
文件夾督勺,需要進(jìn)行以下操作:
選擇 File
- Project Structure...
渠羞,在彈出的對話框中選擇 Modules
條目,選擇 main/kotlin
目錄并點擊上方藍(lán)色的 Sources
按鈕智哀,接著選擇 test/kotlin
目錄并點擊上方綠色的 Tests
按鈕次询,點擊 OK
關(guān)閉對話框。
![](http://7xlqqp.com1.z0.glb.clouddn.com/jgsk/04/ident_folder.png)
此時瓷叫,整個工程結(jié)構(gòu)就創(chuàng)建完成了屯吊。
整個項目源碼可以見 https://github.com/SidneyXu/JGSK