[SCALA] (자바 소스에 혼합했다) 받는다는와 스칼라 응용 프로그램을 구축
SCALA(자바 소스에 혼합했다) 받는다는와 스칼라 응용 프로그램을 구축
(-하지만 한 번에 조금 실제로는 스칼라에 자바 응용 프로그램을 마이그레이션) 내가 혼합 자바와 스칼라 소스를하고 싶은 응용 프로그램이 있습니다.
난 그냥 좋은, 아주 좋은 십오에서이 작업을 할 수 있습니다. 자바와 스칼라가 얽혀 컴파일 할 수 scalac,하지만 어떻게 설정하는 모듈 받는다는 -하지만 확실하지 받는다는으로이 작업을 수행하는 방법을 무엇입니까?
또한, 내 스칼라 소스 자바에 다른 폴더해야합니까?
해결법
-
==============================
1.(다른 사람에 의해 언급 한 바와 같이, 물론 스칼라 소스은 /의 스칼라 디렉토리에 간다) 받는다는 스칼라 플러그인, 믹스 자바와 스칼라 소스가있는 프로젝트에 대한 의지 작업 아래와 같은 설정을 사용.
(다른 사람에 의해 언급 한 바와 같이, 물론 스칼라 소스은 /의 스칼라 디렉토리에 간다) 받는다는 스칼라 플러그인, 믹스 자바와 스칼라 소스가있는 프로젝트에 대한 의지 작업 아래와 같은 설정을 사용.
당신은 등 MVN 컴파일, 테스트를 실행 실행할 수 있습니다 ... 그리고 정상적으로 모든 작업은 것이다. 아주 좋은 (자동으로 첫 번째 scalac를 실행합니다).
좋은 IDE를 들어, 잘 인 IntelliJ 8 일 :에있는 스칼라 플러그인의 추가는 다음 스칼라면을 추가하고 (당신이 스칼라와 자바 소스와 순환 종속성이있는 경우 중요한) 먼저 실행 scalac에 스칼라에 대한 컴파일 설정을 조정합니다.
<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/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>demo</groupId> <artifactId>scala-java-app</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>jar</packaging> <name>scala-java-app</name> <repositories> <repository> <id>scala-tools.org</id> <name>Scala-tools Maven2 Repository</name> <url>http://scala-tools.org/repo-releases</url> </repository> </repositories> <pluginRepositories> <pluginRepository> <id>scala-tools.org</id> <name>Scala-tools Maven2 Repository</name> <url>http://scala-tools.org/repo-releases</url> </pluginRepository> </pluginRepositories> <build> <plugins> <plugin> <groupId>org.scala-tools</groupId> <artifactId>maven-scala-plugin</artifactId> <executions> <execution> <id>compile</id> <goals> <goal>compile</goal> </goals> <phase>compile</phase> </execution> <execution> <id>test-compile</id> <goals> <goal>testCompile</goal> </goals> <phase>test-compile</phase> </execution> <execution> <phase>process-resources</phase> <goals> <goal>compile</goal> </goals> </execution> </executions> </plugin> <plugin> <artifactId>maven-compiler-plugin</artifactId> <configuration> <source>1.5</source> <target>1.5</target> </configuration> </plugin> </plugins> </build> <dependencies> <dependency> <groupId>org.scala-lang</groupId> <artifactId>scala-library</artifactId> <version>2.7.2</version> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>3.8.1</version> <scope>test</scope> </dependency> </dependencies>
-
==============================
2.그래, 스칼라 부분은 별도의 모듈 및 SRC / 메인 / 스칼라 디렉토리에 있어야한다. Maven은 이단으로 다음과 같이 혼합 된 소스를 간주한다.
그래, 스칼라 부분은 별도의 모듈 및 SRC / 메인 / 스칼라 디렉토리에 있어야한다. Maven은 이단으로 다음과 같이 혼합 된 소스를 간주한다.
당신은 스칼라 받는다는 플러그인 가져 스칼라 컴파일을 할 수 있습니다. 좋은 예로서 "사용"페이지로 이동합니다.
-
==============================
3.나는 한 번 Maven 프로젝트에서 비 Java 코드를 포함하는 방법에 대한 매우 비슷한 질문을했다. 대답의 요점은 그 각각 무엇을 알 것 플러그인 메이븐 쓰기 / 각 프로그래밍 언어에 대한 다른 디렉토리 밑에 src해야하고, 찾는 것이 었습니다. 예 :
나는 한 번 Maven 프로젝트에서 비 Java 코드를 포함하는 방법에 대한 매우 비슷한 질문을했다. 대답의 요점은 그 각각 무엇을 알 것 플러그인 메이븐 쓰기 / 각 프로그래밍 언어에 대한 다른 디렉토리 밑에 src해야하고, 찾는 것이 었습니다. 예 :
src/ |-- main | |-- bin | |-- sh | |-- sql | |-- scala | |-- java | `-- resources |-- site ...
-
==============================
4.Sonatype 메이븐 요리 책 제 3 장 스칼라와 메이븐 봐
Sonatype 메이븐 요리 책 제 3 장 스칼라와 메이븐 봐
-
==============================
5.나는 하나 개의 메이븐 스칼라로 작성된 모듈과 자바의 다른를함으로써 몇 시간 전에이 문제를 해결했다. 스칼라와 자바가 서로에 따라 교차 할 수 있기 때문에 그러나 (자바 -> 스칼라 -> Java 또는 다른 방법으로 주위는) 다음이 멀티 모듈 프로젝트없이 매우 바람직한 일이다.
나는 하나 개의 메이븐 스칼라로 작성된 모듈과 자바의 다른를함으로써 몇 시간 전에이 문제를 해결했다. 스칼라와 자바가 서로에 따라 교차 할 수 있기 때문에 그러나 (자바 -> 스칼라 -> Java 또는 다른 방법으로 주위는) 다음이 멀티 모듈 프로젝트없이 매우 바람직한 일이다.
진행이 해결에, 당신은 여기에 대해 읽을 수와 받는다는 - 스칼라 - 플러그인의 새 버전이 곧 출시 될 일이있다.
-
==============================
6.여기에 내가 스칼라, 자바와 몽고 DB를 사용 않았다 작은 프로젝트 링크 (https://github.com/mebinjacob/mongo-scala-java-maven-poc가) 있습니다.
여기에 내가 스칼라, 자바와 몽고 DB를 사용 않았다 작은 프로젝트 링크 (https://github.com/mebinjacob/mongo-scala-java-maven-poc가) 있습니다.
스칼라 파일의 소스 폴더를 지정할 수 있습니다 프로젝트 하나의 pom.xml 파일에서 참고는 자바 또는 SRC / 메인 / 스칼라와 같은 다른 폴더의 경우와 동일 할 수 있습니다. 스칼라 클래스가 별도의 src 폴더에 있어야 할 어떤 의무가 없습니다. 나는 그들 모두를 시도하고 둘 다 잘 작동합니다. 나는이 참조하고있는 치어의 조각
<build> <plugins> <plugin> <groupId>org.scala-tools</groupId> <artifactId>maven-scala-plugin</artifactId> <executions> <execution> <goals> <goal>compile</goal> <goal>testCompile</goal> </goals> </execution> </executions> <configuration> <sourceDir>src/main/scala</sourceDir> <jvmArgs> <jvmArg>-Xms64m</jvmArg> <jvmArg>-Xmx1024m</jvmArg> </jvmArgs> </configuration> </plugin> </plugins> </build>
-
==============================
7.자유롭게 스칼라와 자바 클래스를 혼합하기 위해 여러 가지 방법을 결합해야합니다. 이 솔루션은 나를 위해 일한 :
자유롭게 스칼라와 자바 클래스를 혼합하기 위해 여러 가지 방법을 결합해야합니다. 이 솔루션은 나를 위해 일한 :
<properties> <maven.compiler.source>1.7</maven.compiler.source> <maven.compiler.target>1.7</maven.compiler.target> <!-- <encoding>UTF-8</encoding> --> <scala.tools.version>2.10</scala.tools.version> <scala.version>2.10.3</scala.version> </properties> <build> <sourceDirectory>src/main/scala</sourceDirectory> <testSourceDirectory>src/test/scala</testSourceDirectory> <plugins> <plugin> <groupId>org.scala-tools</groupId> <artifactId>maven-scala-plugin</artifactId> <version>2.15.2</version> <executions> <execution> <id>scala-compile-first</id> <phase>process-resources</phase> <goals> <goal>compile</goal> </goals> </execution> <execution> <id>scala-test-compile</id> <phase>process-test-resources</phase> <goals> <goal>testCompile</goal> </goals> </execution> </executions> </plugin> <plugin> <groupId>net.alchim31.maven</groupId> <artifactId>scala-maven-plugin</artifactId> <version>3.1.3</version> <executions> <execution> <goals> <goal>compile</goal> <goal>testCompile</goal> </goals> <configuration> <args> <arg>-make:transitive</arg> <arg>-dependencyfile</arg> <arg>${project.build.directory}/.scala_dependencies</arg> </args> </configuration> </execution> </executions> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <version>2.13</version> <configuration> <useFile>false</useFile> <disableXmlReport>true</disableXmlReport> <includes> <include>**/*Test.*</include> <include>**/*Suite.*</include> </includes> </configuration> </plugin> </plugins> </build>
from https://stackoverflow.com/questions/336144/building-a-scala-app-with-maven-that-has-java-source-mixed-in by cc-by-sa and MIT license
'SCALA' 카테고리의 다른 글
[SCALA] Akka HTTP : 서버 미래의 블록 차단 (0) | 2019.11.25 |
---|---|
[SCALA] 최고의 스칼라 빌드 시스템은 무엇입니까? [닫은] (0) | 2019.11.25 |
[SCALA] 목록의 이동 평균을 계산 (0) | 2019.11.25 |
[SCALA] 추상 클래스와 형질의 차이 [중복] (0) | 2019.11.25 |
[SCALA] scala.concurrent.Promise의 사용 사례는 무엇입니까? (0) | 2019.11.25 |