2017-02-13 11 views
0

activator newКак организовать код Java и Scala в Play?

приводит:

Fetching the latest list of templates... 



Browse the list of templates: http://lightbend.com/activator/templates 
Choose from these featured templates or enter a template name: 
    1) minimal-akka-java-seed 
    2) minimal-akka-scala-seed 
    3) minimal-java 
    4) minimal-scala 
    5) play-java 
    6) play-scala 
(hit tab to see a list of all templates) 
> 

Анатомия play-java и play-scala выглядит следующим образом:

ls project-*/app 
...-java/app: 
controllers filters Filters.java Module.java services views 

...-scala/app: 
controllers filters Filters.scala Module.scala services views 

В соответствии с this документации:

Вы также имеют возможность использовать макет по умолчанию, используемый SBT и Maven. Обратите внимание, что этот макет является экспериментальным и может иметь проблемы . Для того, чтобы использовать эту схему, необходимо отключить макет плагин и установить явный контроль шаблонов закрутить:

build.sbt     → Application build script 
src      → Application sources 
└ main     → Compiled asset sources 
    └ java     → Java sources 
     └ controllers  → Java controllers 
     └ models   → Java business layer 
    └ scala    → Scala sources 
     └ controllers  → Scala controllers 
     └ models   → Scala business layer 
    └ resources   → Configurations files and other non-compiled resources (on classpath) 
     └ application.conf → Main configuration file 
     └ routes   → Routes definition 

Обсуждение

основе this answer следует объединить Java и SCALA файлы ? Например .:

слияния

...-java/app/controllers: 
AsyncController.java CountController.java HomeController.java 

...-scala/app/controllers: 
AsyncController.scala CountController.scala HomeController.scala 

в

.../app/controllers 
AsyncController.java CountController.java HomeController.java 
AsyncController.scala CountController.scala HomeController.scala 

Является ли это Play анатомия для объединения Java и SCALA классов или должны быть созданы ява и каталог в Scala папку приложения/контроллеры?

routes файл, который находится в Java и лестницу проекта идентичны:

# Routes 
# This file defines all application routes (Higher priority routes first) 
# ~~~~ 

# An example controller showing a sample home page 
GET /       controllers.HomeController.index 
# An example controller showing how to use dependency injection 
GET  /count      controllers.CountController.count 
# An example controller showing how to write asynchronous code 
GET  /message     controllers.AsyncController.message 

# Map static resources from the /public folder to the /assets URL path 
GET  /assets/*file    controllers.Assets.versioned(path="/public", file: Asset) 

ответ

2

Просто поместите ваши controllers и models папки в app папку и положил обе SCALA и Java-файлы внутри.

build.sbt   → Application build script 
app     → Application sources 
└ controllers  → controllers (java or scala) 
└ models   → business layer (java or scala) 
└ views    
public 
conf 
└ application.conf → Main configuration file 
└ routes   → Routes definition 
1

Вам не нужно специального «объединить» макет - вы можете использовать Java и Scala в те же пакеты.

Пример:

package controllers; 

public class MyJavaClass { 

    public static String getName(){ 
    return "My Name"; 
    } 
} 

enter image description here