gradle項目中如何支援java與scala混合使用?

來源:互聯網
上載者:User

標籤:src   blog   ted   res   reflect   logs   ati   junit   自動   

一、目錄結構

二、build.gradle配置

group ‘yjmyzz‘
version ‘1.0-SNAPSHOT‘
apply plugin: ‘java‘
apply plugin: ‘scala‘
apply plugin: ‘application‘ //可選(可自動產生shell啟動指令碼)
mainClassName = ‘AppDemo‘ //可選(與上行的application外掛程式配套出現)

//這裡是關鍵(把java與scala的原始碼目錄全映射到scala上,
// 這樣gradle compileScala時就能同時編譯java與scala的原始碼)
sourceSets {
main {
scala {
srcDirs = [‘src/main/scala‘, ‘src/main/java‘]
}
java {
srcDirs = []
}
}

test {
scala {
srcDirs = [‘src/test/scala‘, ‘src/test/java‘]
}
java {
srcDirs = []
}
}
}

//可選(項目初始化時,可用gradle cDirs產生scala及java的src目錄)
task "createDirs" << {
sourceSets*.scala.srcDirs*.each { it.mkdirs() }
sourceSets*.java.srcDirs*.each { it.mkdirs() }
sourceSets*.resources.srcDirs*.each { it.mkdirs() }
}

repositories {
mavenLocal()
maven { url ‘http://maven.aliyun.com/nexus/content/repositories/central/‘ }
mavenCentral()
}

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

//可選,如果想讓產生的jar可直接運行,建議加上
jar {
manifest {
attributes ‘Main-Class‘: ‘AppDemo‘
}
}

這樣就可以了:

建立初始目錄:gradle cDirs (註:這是縮寫方式,與gradle createDirs完全相同)

編譯: gradle compileScala

產生jar包: gradle jar

產生帶啟動指令碼的可運行包: gradle installDist

gradle項目中如何支援java與scala混合使用?

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.