gpt4 book ai didi

java - 可以在Gradle中混合.java和.clojure和.scala文件

转载 作者:行者123 更新时间:2023-12-03 03:33:47 25 4
gpt4 key购买 nike

可以在Gradle中混合.java和.clojure和.scala文件。我想混用几种编程语言,只是在寻找最好的方法来做到这一点。

最佳答案

我从一个混合了Java,scala和clojure的项目开始。
为了包括scala,我仅添加了scala plugin
apply plugin: 'scala'
以及scala对依存关系的依存关系部分:
compile 'org.scala-lang:scala-library:2.11.7'
为了包括clojure,我关注了this answer

我的最终build.gradle文件如下所示:

buildscript {
repositories {
maven { url "http://clojars.org/repo" }
mavenCentral()
jcenter()
}

dependencies {
classpath 'clojuresque:clojuresque:1.7.0'
}
}

apply plugin: 'application'
apply plugin: 'scala'
apply plugin: 'clojure'

repositories {
mavenCentral()
maven { url "http://clojars.org/repo" }
}

dependencies {
compile 'org.clojure:clojure:1.7.0'
compile 'org.scala-lang:scala-library:2.11.7'
}

// NOTE: You *must* enable AOT (Ahead-of-Time) compilation in order to use a Clojure class as the main class
clojure.aotCompile = true
clojure.warnOnReflection = true

mainClassName = "foo"

我的项目结构是这样的:
.
├── build.gradle
└── src
└── main
├── clojure
│   └── foo.clj
├── java
│   └── JavaClass.java
└── scala
└── HelloWorld.scala

在运行 gradle build之后,我得到了这个构建文件夹:
 build
├── classes
│   └── main
│   ├── HelloWorld$.class
│   ├── HelloWorld.class
│   ├── JavaClass.class
│   ├── foo$_main.class
│   ├── foo$fn__64.class
│   ├── foo$loading__5340__auto____62.class
│   ├── foo.class
│   └── foo__init.class
├── dependency-cache
├── distributions
│   ├── init-proj-1.0.0.tar
│   └── init-proj-1.0.0.zip
├── libs
│   └── init-proj-1.0.0.jar
├── scripts
│   ├── init-proj
│   └── init-proj.bat
└── tmp
├── compileJava
│   └── emptySourcePathRef
├── compileScala
└── jar
└── MANIFEST.MF

我还没有达到互操作的目的(从scala调用clojure,反之亦然,调用 it is discussed here),但是至少它正在生成 .class文件。

关于java - 可以在Gradle中混合.java和.clojure和.scala文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29562000/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com