Pytanie Czy mogę uniknąć dwukrotnego kompilowania źródeł przy uruchamianiu play2 i eclipse?


Obecnie uruchamiam Eclipse i odtwarzam (z ~ run) w tym samym czasie. Kiedy zmienię plik, zostanie skompilowany przez grę i przez zaćmienie.

Czy można uniknąć jednego z tych dwóch etapów kompilacji?

O ile mi wiadomo, wtyczka zaćmienia również używa sbt do zbudowania projektu, więc może istnieje sposób na wykonanie polecenia "run" play wewnątrz Eclipse?

(Pytam, ponieważ mój laptop nie jest bardzo szybki, a kompilacja zajmuje trochę czasu i chciałbym mieć "szybki zwrot", jak reklamowano na stronie gry;)


12
2018-06-07 13:09


pochodzenie


Możliwy duplikat stackoverflow.com/questions/4803283/... - i.am.michiel
hm, nie sądzę, że to duplikat pytania. Nie chcę wyłączać funkcji zaćmienia - gdybym chciał, mógłbym użyć edytora tekstowego. - peq


Odpowiedzi:


Możesz wyłączyć Build Automatically z Project menu bez utraty funkcji IDE. Binaria będą budowane tylko przez Sbt (w linii poleceń).

Szczegółowy przewodnik dotyczący instalacji Play 2 z Scala IDE można znaleźć na stronie internetowej Scala IDE: http://scala-ide.org/docs/tutorials/play20scalaide20/index.html


5
2018-06-08 13:35



Kiedy wyłączam to, tracę jakąś ważną dla mnie funkcjonalność: Kiedy zmieniam coś w jednym pliku, a to powoduje zerwanie innych plików, nie widzę tego bezpośrednio. - peq
Spróbuj wskazać ścieżkę budowania Eclipse w miejscu, w którym buduje się Play / SBT. - pedrofurla
@pedrofurla: próbował. Nie pomogło - Play nadal chce skompilować źródła, które Eclipse już skompilował, a Eclipse chce je skompilować samodzielnie lub nie będzie pokazywał / usuwał błędów cross-file. - jsalvata
Och, usuń Buduj automatycznie. - pedrofurla


Jeszcze nie próbowałem uruchomić zadania uruchamiania sbt w czasie zaćmienia.

ALE możesz uruchomić serwer bezpośrednio z Eclipse.

  1. Dodaj "target / scala-2.9.1 / classes" do ścieżki zajęć, użyj filtrów, aby uwzględnić tylko swoje zasoby. (Właściwości projektu, ścieżka kompilacji Java)
  2. Wybierz "Run Configurations ..." z menu Run-Button.
  3. Utwórz nową konfigurację "Aplikacji Java" ze swoją ulubioną nazwą.
  4. Główna zakładka: użyj "DebugStart" jako głównej klasy
  5. Zakładka Argumenty: Skonfiguruj wszystkie opcje "-Dconfig.file = ..." "-Dlogger.file", które mogą być potrzebne w argumentach VM
  6. Classpath Tab: Dodaj katalog conf do ścieżki klasy (Zaawansowane / Dodaj foldery)

Utwórz DebugStart.scala z:

import play.core.server.NettyServer
import java.io.File
import play.core.SBTLink
import play.core.TestApplication
import play.api.test.FakeApplication
import play.api.test.TestServer

object DebugStart {
  def main(args: Array[String]) {
    val app = FakeApplication()
    val server = TestServer(9000, app)
    server.start()
  }
}

Możesz teraz uruchomić aplikację, uruchamiając lub debugując. Jeśli używasz debugowania, możesz wykonać niektóre zmiany kodu bez restartu.

Moja wersja DebugStart.scala w rzeczywistości zawiera jakiś hackowaty kod zależny od platformy, aby zabić działający proces, więc mogę po prostu nacisnąć F11 lub CTRL + F11, aby ponownie uruchomić aplikację.

Aby upewnić się, że Twoje zasoby / źródła są aktualne, uruchom:

> sbt
...
[your project] $  ~ ;play-copy-assets;sources

1
2017-11-15 16:01



Po dostosowaniu konfiguracji gra działa w środowisku Eclipse i nasłuchuje na porcie 9000, ale nie działa: widok konsoli pozostaje pusty (chyba że wystąpił błąd konfiguracji lub żądam zrzutu wątku) i jeśli wskażę moją przeglądarkę na localhost: 9000, po prostu zawiesza się, czekając na połączenie. Po prostu nie mogę sobie wyobrazić dlaczego. Poradnik? - jsalvata


IntelliJ Idea 12 (Leda) już wkrótce. Używam 11 przez jakiś czas i nie ma takich problemów, ale nowa wersja zapewni znacznie lepszą integrację Play 2.0.


0
2017-11-16 21:24