通过命令行或在指定时间自动触发Eclipse清理

时间:2015-05-08 09:40:05

标签: java eclipse maven svn

无论如何可以强制运行 Eclipse linux 中的命令行清除和重建或时间触发?

我有一个包含数百个 Maven 项目的工作区,必须在文件自动更改后清理重建项目。每天晚上由 cronjob 触发文件更改,该 cronjob 在最后运行svn update后跟mvn cleanmvn install Eclipse 本身会自动查看这些源更改并重建(本机挂钩)以保持最新。但由于未知原因,它不会完全重建。还有很多错误和警告。只有当我清理整个 Eclipse 工作区然后导致 Eclipse 中的自动重建时,这些错误才会消失。这种重建需要很长时间(> 1小时)。我不想每天都花这个时间。所以我正在寻找一种自动方式来强制彻底清理和重建我正在运行的日食工作区过夜。

我无法重启eclipse过夜。

一个想法是从外部清理Eclipse(但是如何?)让它自己注意到变化。然后Eclipse可能会自动重建。

1 个答案:

答案 0 :(得分:3)

As far as I'm aware, there's no predefined way to trigger this from the outside. So I'm going to propose a strategy which can achieve what you need. This touches on a lot of advanced topics so I'm only going to provide some pointers to get you started, because bringing all the details will be too much for this format. It would probably make an excellent blog article tho. So here we go:

  1. Write a plugin for your Eclipse.
  2. This plugin hast to expose an MXBean with a Clean-and-Rebuild operation. Use the JDK tool <br /><p>Serkan Ercan'ın yolu bu sefer de bozulmamış Akdeniz ve okyanus sahilleri, verimli toprakları ve hemen yanı başında bulunan çölüyle Kuzey Afrika'nın en şanslı ülkesi olan Fas'a düşüyor.</p> <p>Geçmişte nice imparatorluklara ev sahipliği yapmış bu masal ülkesi zengin bir tarihin mirasçısı. Her şehri farklı bir atmosfere sahip bu güzel ülkede Serkan Ercan'ın ilk rotası filmlere adını vermiş meşhur şehir Kazablanka.</p> <p>Adı İspanyolca'da “Beyaz Ev” anlamına gelen Kazablanka, denizi, tarihi dokusu, mimarisi ve doğal güzellikleriyle kusursuz güzellikleri bir arada sunan masalsı bir şehir. Üç milyonluk nüfusuyla Magrep ülkeleri içinde en büyük konuma sahip bu şehir, aynı zamanda Fas'ın en önemli ticaret merkezi ve en büyük liman kenti. <br /> <br /> Eski Şehir ile Yeni Şehir ve bu iki merkezin etrafına yayılmış çeşitli turistik mekanlarıyla birçok görülecek yere sahip Kazablanka, hem egzotik hem de modern mimariden izler taşıyor.</p> <p>Şehrin en önemli sembollerinden biri İkinci Hasan Camii. Bu görkemli yapı Fas eski kralı II. Hasan’ın 1989’da 60. doğum gününe yetiştirilmek için yoğun çabalar sarf edilerek inşa edilse de binlerce işçinin sabah akşam çalışmasına rağmen ancak 1993’te tamamlanabilmiş. Önündeki devasa meydan ile beraber 105 bin kişinin aynı anda namaz kılabileceği şekilde tasarlanan caminin minaresi 210 metrelik yüksekliğiyle yeryüzündeki en yüksek minare ünvanına sahip. Atlantik Okyanusu'nun üzerine inşa edilen bu mermer yapı gerçekten de büyüleyici.</p> <p>1710'da, Moulay Ismail tarafından yapılan Kasbah Boulaouane Kalesi Casablanca'nın sahip olduğu en güzel manzarayı izlemek için ideal bir mekan. Kentin gürültüsünden uzaklaşmak isteyen halkın tercih ettiği yerlerden biri olan kaleyi görmeden bu güzel şehirden ayrılmak olmaz.</p> <p>Kazablanka'daki eğlenceli gezisini bitiren Serkan Ercan'ın ikinci durağı geçmişte Fas Sultanlığı'na başkentlik yapmış olan Fes şehri. Fas'ın geleneksel yapısının daha yalın bir şekilde gözlemlenebildiği bu şehir, dünyada Orta Çağ yerleşimi bütün olarak korunmuş en iyi şehirlerden biri.</p> <p>Labirent gibi daracık neredeyse on bin sokak ve bu sokaklarda yer alan küçücük dükkanlardan oluşan bu tarihi şehirde kaybolmamak mümkün değil. Fez’de görülecek en önemli yer kuşkusuz eski şehir yani Fez Medina'sı. Fez Medinası Fas’ın en önemli yerel alışveriş merkezlerinden biri, toplam 13 bin dükkan olduğu söylenen bu büyük pazarda, deri ürünleri, porselenler, baharatlar ve daha birçok ürünü bulabilirsiniz. Fes'teki tarihi yapıları ziyaret eden Serkan Ercan şekerle tuzun karıştığı lezzetli Fas mutfağını da keşfe çıkıyor.</p> <p>Fas'ın gizemli sokaklarında keşfe çıkan ünlü oyuncu yerel halkla yaptığı keyifli sohbetlerle dolu bir bölümle İZ ekranlarında...</p> to check the operation's accessibility.
  3. That operation in turn executes the clean and the full rebuild commands. You can use the Eclipse Plug-in Spy to find the appropriate command contributions, and/or scour the Eclipse source code.
  4. Then, you need to build a custom JMX client which invokes that MXBean operation from the outside. This is basically a stripped down version of jconsole's JMX capabilities and can be a simple Java command line app your cron job calls. It needs to connect to your local Eclipse instance and invoke the operation you defined earlier. In order to find the correct instance to connect to, your Eclipse plugin could write the port of the instance's MXBean server to a file your JMX client looks for at startup.

EDIT: In addition to the clean and rebuild commands, you'll want to invoke a full refresh of the workspace beforehand.