Hello IDEA

数据宇宙探索者
• 阅读 3466

Scala-SBT

首先安装scala插件. 在13+版本中已经默认有SBT插件.

Hello IDEA

新建一个Project, 选择基于SBT的Scala项目方式创建

Hello IDEA

下一步选择JDK和SBT, Scala的版本.

Hello IDEA

点击Finish, 会生成如下图的代码结构图: 其中
build.sbt文件类似maven的pom.xml
在src/main下会创建java, resources, scala三个Sources Root

Hello IDEA

新建scala object. (或者新建一个scala class, 但是为了在IDEA中运行, 还要在class中新建一个同名的object)

Hello IDEA

运行方式:

  1. 在scala object上右键Run你的Object名字

  2. 使用sbt命令运行

hadoop@hadoop:~/IdeaProjects$ cd scala-sbt/
hadoop@hadoop:~/IdeaProjects/scala-sbt$ ls
build.sbt  project  src  target
hadoop@hadoop:~/IdeaProjects/scala-sbt$ sbt
[info] Loading project definition from /home/hadoop/IdeaProjects/scala-sbt/project
[info] Set current project to scala-sbt (in build file:/home/hadoop/IdeaProjects/scala-sbt/)
> compile
[info] Updating {file:/home/hadoop/IdeaProjects/scala-sbt/}scala-sbt...
[info] Resolving org.fusesource.jansi#jansi;1.4 ...
[info] Done updating.
[info] Compiling 3 Scala sources to /home/hadoop/IdeaProjects/scala-sbt/target/scala-2.10/classes...
[warn] there were 1 deprecation warning(s); re-run with -deprecation for details
[warn] one warning found
[success] Total time: 6 s, completed 2015-1-30 17:16:37
> run

Multiple main classes detected, select one to run:

 [1] com.zqh.akka.Pi
 [2] com.zqh.scala.HelloScala
 [3] com.zqh.akka.HelloAkka

Enter number: 1

[info] Running com.zqh.akka.Pi 

    Pi approximation:       3.1415926435897883
    Calculation time:   490 milliseconds
[success] Total time: 6 s, completed 2015-1-30 17:16:47
> 
  1. 使用IDEA自带的sbt运行

点击SBT Console视图, 点击绿色的运行按钮, 就会自动运行sbt命令

Hello IDEA

项目依赖的jar包:

Hello IDEA

Scala-Module

新建一个空的Project: codebase

Hello IDEA

空的项目里可以新建多个不同语言的module. 比如scala module, 注意这里没有sbt选项!

Hello IDEA

因为仅仅是scala模块, 只生成一个src目录, 并所以没有sbt生成的那种固定的代码结构

Hello IDEA

Maven-Module

可以在这个codebase项目中新建maven工程:

1.点击External Libraries, 然后New Module, 不要在已有的module中再new module
2.注意不要勾选Create from archetype, 否则不会自动帮你生成src/main/java等目录.
3.第一步不在已有的module新建module, 所以New Module的parent界面为none

Hello IDEA

maven的代码结构是src/main/java, src/main/resources, 以及根目录下的pom.xml用来加载第三方jar包

Hello IDEA

Gradle-Module

http://clojure.iteye.com/blog/2091723

mkdir gradle-demo && cd gradle-demo && vi build.gradle

apply plugin: 'idea'
apply plugin: 'scala'

task "createDirs" << {
    sourceSets*.scala.srcDirs*.each { it.mkdirs() }
    sourceSets*.resources.srcDirs*.each { it.mkdirs() }
}

repositories{
    mavenCentral()
    mavenLocal()
}

dependencies{
    compile "org.scala-lang:scala-library:2.10.4"
    compile "org.scala-lang:scala-compiler:2.10.4"
    compile "org.scala-lang:scala-reflect:2.10.4"
    testCompile "junit:junit:4.11"
}

task run(type: JavaExec, dependsOn: classes) {
    main = 'Main'
    classpath sourceSets.main.runtimeClasspath
    classpath configurations.runtime
}

gradle createDirs

:createDirs
BUILD SUCCESSFUL
Total time: 4.413 secs

在IDEA中Import Module, 选择刚才创建的目录

Hello IDEA

Hello IDEA

Hello IDEA

Clojure-module

安装IDEA的clojure插件La Clojure.

创建一个clojure-module: clojure-demo

Hello IDEA

Hello IDEA

在HelloClojure.clj右键点击Run 'HelloClojure',快捷键为: Ctrl+Shift+F10

Hello IDEA

或者右键点击Start Clojure Console, 快捷键为Ctrl+Shift+D
这个调用的实际上是Clojure的REPL, 和在命令行上执行java -jar clojure.jar是一样的

Hello IDEA

leiningen

Scala相关的插件有SBT和scala. 其中SBT会创建出样例式的代码结构工程. scala没有. 而La Clojure插件也没有.
clojure的构建工具是: leiningen
https://github.com/technomancy/leiningen
http://wiki.fnil.net/index.php?title=Leiningen%E6%95%99%E7%A8%8B%E4%B8...

More Tutorial:
http://blog.8thlight.com/colin-jones/2010/11/26/a-leiningen-tutorial.h...
https://github.com/technomancy/leiningen/blob/master/doc/TUTORIAL.md
http://ben.vandgrift.com/2013/03/13/clojure-hello-world.html

下载 https://raw.githubusercontent.com/technomancy/leiningen/stable/bin/lei... 脚本放到~/bin下

mv lein.txt lein
chmod 755 lein

第一次执行lein会去下载leiningen.jar包. 后面再次执行时还会下载, 参考lein脚本设置LEIN_JAR就使用已有的jar

vi ~/.bashrc

export LEIN_JAR=/home/hadoop/.lein/self-installs/leiningen-2.5.0-standalone.jar
export PATH=$PATH:/home/hadoop/sh:/home/hadoop/bin
source ~/.bashrc

hadoop@hadoop:~/IdeaProjects/codebase$ lein new clojure-project
Generating a project called clojure-project based on the 'default' template.
The default template is intended for library projects, not applications.
To see other templates (app, plugin, etc), try `lein help new`.
hadoop@hadoop:~/IdeaProjects/codebase$ tree clojure-project/
clojure-project/
├── doc
│   └── intro.md
├── LICENSE
├── project.clj
├── README.md
├── resources
├── src
│   └── clojure_project
│       └── core.clj
└── test
    └── clojure_project
        └── core_test.clj

6 directories, 6 files

lein REPL

hadoop@hadoop:~/IdeaProjects/codebase/clojure-project$ lein repl
nREPL server started on port 59876 on host 127.0.0.1 - nrepl://127.0.0.1:59876
REPL-y 0.3.5, nREPL 0.2.6
Clojure 1.6.0
Java HotSpot(TM) 64-Bit Server VM 1.7.0_67-b01
    Docs: (doc function-name-here)
          (find-doc "part-of-name-here")
  Source: (source function-name-here)
 Javadoc: (javadoc java-object-or-class-here)
    Exit: Control+D or (exit) or (quit)
 Results: Stored in vars *1, *2, *3, an exception in *e

user=> (+ 1 2)
3
user=> quit
Bye for now!
hadoop@hadoop:~/IdeaProjects/codebase/clojure-project$ lein run
No :main namespace specified in project.clj.

lein RUN

hadoop@hadoop:~/IdeaProjects/codebase/clojure-project$ cat project.clj
(defproject clojure-project "0.1.0-SNAPSHOT"
  :description "FIXME: write description"
  :url "http://example.com/FIXME"
  :license {:name "Eclipse Public License"
            :url "http://www.eclipse.org/legal/epl-v10.html"}
  :dependencies [[org.clojure/clojure "1.6.0"]]
  :main ^:skip-aot clojure-project.core
  :target-path "target/%s"
  :profiles {:uberjar {:aot :all}})

hadoop@hadoop:~/IdeaProjects/codebase/clojure-project$ cat src/clojure_project/core.clj 
(ns clojure-project.core)

(defn foo
  "I don't do a whole lot."
  [x]
  (println x "Hello, World!"))

(defn -main []
  (foo "zqh"))

hadoop@hadoop:~/IdeaProjects/codebase/clojure-project$ lein run
zqh Hello, World!

IDEA与leiningen

http://clojure.iteye.com/blog/1740422 
http://www.cnblogs.com/devos/p/4201743.html

点赞
收藏
评论区
推荐文章
美凌格栋栋酱 美凌格栋栋酱
6个月前
Oracle 分组与拼接字符串同时使用
SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(
Wesley13 Wesley13
3年前
SBT添加国内镜像
在sbt的conf文件夹新建repositories文件repositorieslocalaliyun:http://maven.aliyun.com/nexus/content/groups/public/central:http://repo1.maven.org/maven2/在sbtc
Wesley13 Wesley13
3年前
SBT无痛入门指南
_SBT_(https://www.oschina.net/action/GoToLink?urlhttps%3A%2F%2Fwww.scalasbt.org%2F)是Scala的构建工具,全称是SimpleBuildTool,类似Maven或Gradle。SBT的野心很大,采用Scala编程语言本身编写配置文件,这使得它稍显
Stella981 Stella981
3年前
Mac OS X 安装和配置Scala
一、下载Scala到官网下载Mac版的Scala:http://www.scalalang.org/download/二、配置Scala解压压缩包,可将其移动至/usr/local/share下(Scala的版本和下载目录以实际安装的为准):mvscala2.12.1
Stella981 Stella981
3年前
Intellij idea利用Statistic插件统计项目代码行数
1.插件介绍统计项目中各个文件的数量,大小,行数,平均等信息根据扩展名自定义统计详细行数信息,包括总行数,代码行数,代码行数占比,注释行数,注释行数占比,空白行数,空白行数占比自定义选择多个文件,统计各个文件信息本插件需要JDK8或以上版本2.插件安装利用在线或离线方式安装Statistic插件到idea中
Stella981 Stella981
3年前
CDH5.12.1添加spark2.2.0服务
最新的CDH安装包中spark版本为1.6,不过对于勇于尝鲜的同学,官方也提供了spark2的升级包,在CDH中spark1和spark2可以共存,但是由于scala版本的兼容性问题,建议只装一个版本。由于spark依赖于scala所以需要在每个节点安装scala,并配置好SCALA\_HOME并将$SCALA\_HOME/bin加入PATH中。Sca
Stella981 Stella981
3年前
Spark框架:Win10系统下搭建Scala开发环境
一、Scala环境基础Scala对Java相关的类,接口进行了包装,所以依赖Jvm环境。Jdk1.8scala依赖scala2.11安装版本idea2017.3开发工具二、配置Scala解压版1)注意路径无空格和中文!(http
Easter79 Easter79
3年前
SpringBoot基础框架的搭建(idea工具快速搭建)
1、打开idea,选择新建项目然后选择SpringAssistant进去后,配置sdk版本和选择default,使用springboot的基础架构!(https://static.oschina.net/uploads/img/202009/16142318_t4BK.png)友情提醒,若idea是社区版,要通过插件安装SpringAss
Stella981 Stella981
3年前
Mac下使用SBT搭建play framework 2.x 项目
由于工作需要,项目中用到play,到官网上大致看了一下文档,在网上搜索了很多资料。总结如下:\\1.下载安装说明\\play官网2.2版本以后都不能手动下载。play官方建议使用sbt构建play项目,并且要求jdk1.8版本。下载解压sbt,设置环境变量。\\2.构建项目\\
Stella981 Stella981
3年前
MAVEN创建WEB应用
使用eclipse插件创建一个webproject首先创建一个Maven的Project如下图!(http://static.oschina.net/uploads/img/201303/18004201_q7BO.png)我们勾选上Crea
Stella981 Stella981
3年前
SpringBoot基础框架的搭建(idea工具快速搭建)
1、打开idea,选择新建项目然后选择SpringAssistant进去后,配置sdk版本和选择default,使用springboot的基础架构!(https://static.oschina.net/uploads/img/202009/16142318_t4BK.png)友情提醒,若idea是社区版,要通过插件安装SpringAss