`
keriny
  • 浏览: 95350 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Java在各种框架下编译Scala 【一】

阅读更多
    如何利用Java在各种框架下编译Scala项目?本文转载自一位外国开发人员的blog,是一篇利用Java语言在最流行的各种Java框架下调用Scala的项目的教程,从细微入手解决实际问题。

     

    下面是一个教程文件是我在如今最佳或者说最流行的Java框架——SpringHibernate/JPA、Wicket、Maven和Intellij IDEA上充分利用Java语言调用Scala的项目,希望能帮助其他的Java程序员使用一个企业级的Scala项目。

    在IDE上的设置

    首先,下载的IntelliJ IDEA的10.0.x(社区版),因为目前它是最好的Scala的IDE。然后选择File |设置|插件(具体的安装方式请参见本博客中SCALA开发之环境搭建【IntelliJ IDEA】),选择可用的选项卡来安装Scala插件。

    创建Maven项目

    在IntelliJ IDEA中,选择文件|新建项目,然后选择Maven的模块创建一个Maven项目。然后修改如下所示的pom.xml。添加所有你需要的设置,建立Scala的汇编语言:

  1. <project xmlnsxmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"           
  2.          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0http://maven.apache.org/maven-v4_0_0.xsd">           
  3.     <modelVersion>4.0.0</modelVersion>           
  4.     <groupId>com.foo</groupId>           
  5.     <artifactId>myapp</artifactId>           
  6.     <packaging>war</packaging>           
  7.     <version>1.0-SNAPSHOT</version>           
  8.     <name>myapp Java EE 6 Webapp</name>           
  9.     <url>http://maven.apache.org</url>           
  10.     <properties>           
  11.         <spring.version>3.0.3.RELEASE</spring.version>           
  12.      </properties>          
  13.            
  14.     <repositories>           
  15.         <repository>           
  16.             <id>java.net2</id>           
  17.             <name>Repository hosting the jee6 artifacts</name>           
  18.             <url>http://download.java.net/maven/2</url>           
  19.          </repository>          
  20.            
  21.         <repository>           
  22.             <id>scala-tools.org</id>           
  23.              <name>Scala-tools Maven2 Repository</name>          
  24.             <url>http://scala-tools.org/repo-releases</url>           
  25.            
  26.         </repository>           
  27.         <repository>           
  28.              <id>wpt-release</id>          
  29.             <url>http://wicketpagetest.sourceforge.net/m2-repo/releases</url>           
  30.            
  31.         </repository>           
  32.         <repository>           
  33.              <id>wpt-snapshot</id>          
  34.             <url>http://wicketpagetest.sourceforge.net/m2-repo/snapshots</url>           
  35.            
  36.         </repository>           
  37.     </repositories>           
  38.     <pluginRepositories>           
  39.         <pluginRepository>           
  40.             <id>scala-tools.org</id>           
  41.             <name>Scala-tools Maven2 Repository</name>           
  42.             <url>http://scala-tools.org/repo-releases</url>           
  43.          </pluginRepository>          
  44.            
  45.     </pluginRepositories>           
  46.     <dependencyManagement>           
  47.         <dependencies>           
  48.             <dependency>           
  49.                  <groupId>org.springframework</groupId>          
  50.                 <artifactId>spring-context</artifactId>           
  51.            
  52.                 <version>${spring.version}</version>           
  53.              </dependency>          
  54.            
  55.              <dependency>          
  56.                 <groupId>org.springframework</groupId>           
  57.            
  58.                 <artifactId>spring-core</artifactId>           
  59.                 <version>${spring.version}</version>           
  60.             </dependency>           
  61.             <dependency>           
  62.                 <groupId>org.springframework</groupId>           
  63.                  <artifactId>spring-web</artifactId>          
  64.            
  65.                 <version>${spring.version}</version>           
  66.              </dependency>          
  67.            
  68.              <dependency>          
  69.                 <groupId>org.springframework</groupId>           
  70.            
  71.                  <artifactId>spring-orm</artifactId>          
  72.                 <version>${spring.version}</version>           
  73.            
  74.             </dependency>           
  75.         </dependencies>           
  76.     </dependencyManagement>           
  77.     <dependencies>           
  78.         <dependency>           
  79.             <groupId>com.h2database</groupId>           
  80.             <artifactId>h2</artifactId>           
  81.             <version>1.2.120</version>           
  82.         </dependency>           
  83.         <dependency>           
  84.              <groupId>org.hibernate</groupId>          
  85.             <artifactId>hibernate-entitymanager</artifactId>           
  86.            
  87.             <version>3.4.0.GA</version>           
  88.         </dependency>           
  89.         <dependency>           
  90.             <groupId>org.springframework</groupId>           
  91.             <artifactId>spring-orm</artifactId>           
  92.         </dependency>           
  93.         <dependency>           
  94.             <groupId>com.ttdev</groupId>           
  95.             <artifactId>wpt-core</artifactId>           
  96.             <version>1.5.2-SNAPSHOT</version>           
  97.             <scope>test</scope>           
  98.         </dependency>           
  99.         <dependency>           
  100.             <groupId>com.ttdev</groupId>           
  101.             <artifactId>wpt-runtime-spring</artifactId>           
  102.              <version>1.5.2-SNAPSHOT</version>          
  103.            
  104.         </dependency>           
  105.         <dependency>           
  106.              <groupId>javax</groupId>          
  107.             <artifactId>javaee-web-api</artifactId>           
  108.            
  109.             <version>6.0</version>           
  110.             <scope>provided</scope>           
  111.         </dependency>           
  112.         <dependency>           
  113.             <groupId>junit</groupId>           
  114.             <artifactId>junit</artifactId>           
  115.             <version>3.8.2</version>           
  116.             <scope>test</scope>           
  117.         </dependency>           
  118.         <dependency>           
  119.             <groupId>org.scala-lang</groupId>           
  120.             <artifactId>scala-library</artifactId>           
  121.             <version>2.8.0.RC3</version>           
  122.         </dependency>           
  123.         <dependency>           
  124.             <groupId>org.apache.wicket</groupId>           
  125.             <artifactId>wicket</artifactId>           
  126.             <version>1.4.9</version>           
  127.         </dependency>           
  128.         <dependency>           
  129.             <groupId>org.slf4j</groupId>           
  130.             <artifactId>slf4j-log4j12</artifactId>           
  131.             <version>1.4.2</version>           
  132.         </dependency>           
  133.     </dependencies>           
  134.     <build>           
  135.         <pluginManagement>           
  136.             <plugins>           
  137.                  <plugin>          
  138.                     <groupId>org.apache.maven.plugins</groupId>           
  139.            
  140.                     <artifactId>maven-compiler-plugin</artifactId>           
  141.                      <version>2.0.2</version>          
  142.            
  143.                 </plugin>           
  144.                 <plugin>           
  145.                      <groupId>org.scala-tools</groupId>          
  146.                     <artifactId>maven-scala-plugin</artifactId>           
  147.            
  148.                     <version>2.9.1</version>           
  149.                 </plugin>           
  150.             </plugins>           
  151.         </pluginManagement>           
  152.         <plugins>           
  153.             <plugin>           
  154.                  <groupId>org.apache.maven.plugins</groupId>          
  155.                 <artifactId>maven-compiler-plugin</artifactId>           
  156.            
  157.                 <executions>           
  158.                     <execution>           
  159.                         <phase>compile</phase>           
  160.                         <goals>           
  161.                             <goal>compile</goal>           
  162.                         </goals>           
  163.                     </execution>           
  164.                 </executions>           
  165.                 <configuration>           
  166.                     <source>1.6</source>           
  167.                     <target>1.6</target>           
  168.                 </configuration>           
  169.             </plugin>           
  170.             <plugin>           
  171.                 <groupId>org.apache.maven.plugins</groupId>           
  172.                  <artifactId>maven-war-plugin</artifactId>          
  173.            
  174.                 <version>2.1-beta-1</version>           
  175.                 <configuration>           
  176.                     <failOnMissingWebXml>false</failOnMissingWebXml>           
  177.                  </configuration>          
  178.            
  179.             </plugin>           
  180.             <plugin>           
  181.                  <groupId>org.scala-tools</groupId>          
  182.                 <artifactId>maven-scala-plugin</artifactId>           
  183.            
  184.                 <executions>           
  185.                     <execution>           
  186.                          <id>scala-compile-first</id>          
  187.                         <phase>process-resources</phase>           
  188.            
  189.                          <goals>          
  190.                             <goal>add-source</goal>           
  191.            
  192.                             <goal>compile</goal>           
  193.                         </goals>           
  194.                     </execution>           
  195.                     <execution>           
  196.                          <id>scala-test-compile</id>          
  197.                         <phase>process-test-resources</phase>           
  198.            
  199.                          <goals>          
  200.                             <goal>testCompile</goal>           
  201.            
  202.                         </goals>           
  203.                     </execution>           
  204.                 </executions>           
  205.             </plugin>           
  206.         </plugins>           
  207.         <finalName>myapp</finalName>           
  208.     </build>           
  209. </project>         

等待一段时间,IDEA将提示导入的项目是否需要更改。回答是肯定。

分享到:
评论

相关推荐

    scala和java混合编译

    在Java和Scala混合编译的场景下,我们需要引入两个关键的Maven插件:`maven-compiler-plugin`用于编译Java代码,`maven-scala-plugin`用于编译Scala代码。这两个插件需要在`pom.xml`中正确配置,确保它们能够协同...

    scala PLAY 框架 sbt仓库

    Scala Play框架是一款基于Java和Scala的开源Web应用框架,它以简洁、高效和模块化著称,被广泛用于构建现代的、反应式的Web服务。在Play框架中,sbt(Simple Build Tool)是默认的构建工具,它允许开发者管理项目...

    面向Java开发者的Scala教程

    不过,与Java不同的是,`main`方法不需要声明返回类型,因为它是一个过程方法(void 方法在Java中的等价物)。 ```scala object HelloWorld { def main(args: Array[String]) { println("Hello, world!") } } ``...

    windows版scala-2.11.12.zip

    这样,无论你在哪个目录下,都可以通过键入`scala`或`scalac`来启动Scala的交互式Shell或者编译Scala源代码。 Spark是一个用Scala编写的分布式计算框架,它利用Scala的简洁语法和强大的功能来构建大规模数据处理...

    scala sdk scala-2.12.3

    Scala是一种多范式的编程语言,融合了面向对象和函数式编程的特点,它运行在Java虚拟机(JVM)上,能够充分利用Java生态系统的资源。Scala-2.12.3是Scala的一个特定版本,它包含了对Java 8及更高版本的支持,并提供...

    scala-2.12.10.tgz

    11. Scala工具链:除了REPL和编译器,Scala社区还提供了许多其他工具,如sbt用于构建项目,IntelliJ IDEA或Eclipse等IDE的Scala插件提供强大的开发支持,以及各种测试框架如ScalaTest和Specs2。 总的来说,`scala-...

    Scala语法简明教程

    这些公司在各种场景下应用Scala,包括大数据处理、微服务架构等。此外,Scala还有一些非常流行的生态系统项目,如Akka、Spark、Play! 和 Spray等。 #### Scala基础语法 - **变量声明**: - Scala中声明变量使用`...

    scala入门(仅供参考)

    Scala是一种多范式的编程语言,设计目标是融合面向对象编程和函数式编程的特性,它在Java虚拟机(JVM)上运行,因此可以无缝地与Java代码交互。本篇文章主要面向有一定Java开发经验的程序员,旨在帮助他们入门Scala。 ...

    Scala语法入门.pdf

    Scala的源代码会被编译成Java字节码,从而可以在JVM上运行。Scala支持静态类型检查,这有助于在编译期间捕获错误,类似于Java、C和C++等静态类型语言。同时,Scala也吸收了现代函数式编程语言的设计特点,包括不可变...

    java 反编译软件

    Java反编译是将已编译的Java...总的来说,Java反编译是一个复杂而有趣的技术领域,它可以帮助开发者在没有源代码的情况下理解和调试Java应用程序。通过使用合适的反编译软件,我们可以更深入地探索Java字节码的世界。

    scala + mybatis 数据库查询

    MyBatis则是一款流行的Java持久层框架,主要用于简化数据库操作。在本项目中,"scala + mybatis 数据库查询",我们将探讨如何将Scala与MyBatis结合,实现高效的数据库查询功能。 1. **Scala与MyBatis的集成** - ...

    Scala基础.pdf

    在REPL中,可以快速编译Scala代码并执行。计算表达式时,REPL会返回结果,并将结果默认存储在变量res中。此外,REPL支持自动补全功能,可以通过Tab键提示完成表达式和命令。 在开发环境方面,Scala可以在多种集成...

    scala2.12.1Windows镜像包

    - **安装**:`scala-2.12.1.msi`是一个Windows安装程序,用于在Windows系统上安装Scala开发环境,包括Scala编译器(scalac)和Scala REPL(Read-Eval-Print Loop)。 - **集成开发环境**:通常配合IDEA或IntelliJ ...

    无涯教程(LearnFk)-Scala教程完整离线版.pdf

    4. 兼容 Java:Scala 是为 Java 虚拟机(JVM)设计的,因此 Scala 代码可以无缝地与现有的 Java 类库和框架集成。Scala 可以调用 Java 代码,并且 Java 代码也可以调用 Scala 代码。这使得 Scala 在 Java 生态系统中...

    Scala详细总结(精辟版++)

    Scala是一种静态类型的编程语言,其设计旨在结合面向对象编程和函数式编程的优点,并且能在Java虚拟机(JVM)上运行。这意味着Scala能够充分利用现有的Java类库,并且能够与Java代码无缝集成。Scala不仅支持面向对象...

    scala-2.11.12 win msi 安装包

    1. **静态类型**:Scala是一个静态类型的编程语言,这意味着每个变量和表达式都有一个明确的类型,在编译时就能被确定,有助于避免运行时错误。 2. **强类型**:Scala具有严格的类型检查,确保代码的可靠性和安全性...

    scala-2.12.0.tgz

    - **编译和运行**:使用`sbt`或`scalac`编译Scala程序,使用`scala`命令启动REPL进行交互式编程。 - **开发工具**:IDEA、IntelliJ IDEA等集成开发环境有Scala插件,可以提供良好的开发体验。 - **学习资源**:...

Global site tag (gtag.js) - Google Analytics