Още редакции: Като алтернатива можете да проверите своя сблъсък на пиксел на всеки от обектите, вместо да ги обедините всички в един. Въпреки това ще трябва да покажете някакъв код, за да получите помощ за това. В момента използвам този метод. Но ще опитам да използвам RenderTarget. Благодаря за съвета!

person alex wilhelm    schedule 09.07.2013    source източник


Отговори (1)


Стартирайте от IDE

Различните Java IDE позволяват по-ефективни работни процеси. Например в IDE можете да стартирате вашето приложение с помощта на конфигурация по време на изпълнение, която изпълнява вашия Service.main() метод с параметри на server hello-world.yml. Това ще ви спести безкрайни компилации на Maven.

За съжаление, при Eclipse горещата смяна на промените в кода често е тромава, така че бих ви препоръчал да помислите за Intellij, който е по-надежден, когато става въпрос за код за гореща смяна. Дори тогава горещата смяна може да бъде рисковано.

Понякога рестартирането е неизбежно

Като се има предвид това, във вашата ситуация горещата смяна няма да помогне. Вие променяте стартовия конфигурационен файл, който се чете само при стартиране. Ще трябва да рестартирате, за да видите промените, освен ако не създадете свой собствен механизъм за промяна на хеша за динамично опресняване на файл (не се препоръчва).

Една алтернатива е да поставите голяма част от тестването на вашата конфигурация в тестове на единици и да проверите дали вашият код отговаря според очакванията.

Стичните активи осигуряват оптимален работен процес (без рестартиране)

Може да срещнете ситуация, в която искате да промените само статични активи (като JavaScript файлове), в който случай Intellij ще ви позволи просто да прекомпилирате в движение и ще копира променените активи в директорията /target и ще ги вземе незабавно от Dropwizard без рестартиране.

Ако искате да отидете една стъпка по-далеч, можете да привлечете услугите на Grunt.js, така че той непрекъснато да следи src/main/resources/assets (или подобен) за промени и след това автоматично да актуализира вашия /target вместо вас. Отново Intellij автоматично запазва при промяна на фокуса, така че това ще доведе до оптимален работен процес, при който променяте актива, изчаквате една секунда, опреснявате браузъра и виждате незабавния резултат.

Написах дълга статия в блога, обхващаща Dropwizard и Ember Data преди известно време, ако искате повече подробности за този подход (и разработката на едностранично уеб приложение като цяло).

person Gary Rowe    schedule 10.07.2013
comment
Това е вярно. Единственото нещо, което бих добавил е, че трябва да зададете http.shutdownGracePeriod на 0s за вашата среда за разработка, което ще позволи на Jetty незабавно да се изключи. - person Coda Hale; 10.07.2013