мар 212013
 

Днес, 21.03.2013 г, ще се проведе семинар на тема “Eclipse plug-in development” пред българската Java потребителска група (BG-JUG). Семинарът ще бъде в зала 299 на ФМИ с начало19:00 ч.

eclipse-plugin-development-poster

Повече за семинара

На семинара ще бъдат разгледани следните въпроси:

  1. Кратка история и развитие на платформата Eclipse
  2. OSGi и реализация в Eclipse
  3. Архитектура и основни компоненти на платформата Eclipse
  4. Структура на Eclipse
  5. Разработване на плъгини за Eclipse

По време на семинара ще се наблегне и на новостите в e4.

Лектори

Лектори на семинара ще бъдат Мартин Тошев и Дмитрий Александров.

Това е обявата на събитието и на сайта на BG-JUG.

Share
сеп 102011
 

Без съмнение при разработването на Java-базирани уеб приложения, Eclipse и Tomcat са избор по подразбиране. Обикновено предпочитам да използвам предварително инсталиран Tomcat, използвайки го през Eclipse.  В този случай обаче, по подразбиране, логгинга на Tomcat не работи, което обикновено е доста дразнещо, тъй като не ни се иска да се връщаме в тъмните времена на System.out.println() (което добавя още един аргумент към молбата на Мишо за подобряване на интеграцията между Eclipse и Tomcat).

Включване на логването под Tomcat, който се управлява от Eclipse

За включване на логването под Tomcat, който се управлява управлява от Eclipse, са нужни следните стъпки:

  • Подготвя се конфигурационния log4j.properties файл, намиращ се в директория [LOG4J_PROPS_LOCATION]
  • В Eclipse се маркира се желания сървър в менюто за подпрозореца за сървърите (вж. снимката по-долу)
  • Open (F3) > Open launch configuration > Arguments > VM arguments:
  • Като последен аргумент се добавя следното:
-Djava.util.logging.config.file="[LOG4J_PROPS_LOCATION]/logging.properties" -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager

Местоположение на конфигурационните файлове на Tomcat

Когато конфигурирам Tomcat, предпочитам конфигурационните файлове да бъдат в директорията на сървъра. Когато сървърът се стартира през Eclipse обаче, това не е толкова лесно.

Когато се създаде сървър под Eclipse, използвайки независима Tomcat инсталация,  физически конфигурационните файлове на сървъра се съхраняват в следната директория “[ECLIPSE_WORKSPACE]/.metadata/.plugins/org.eclipse.wst.server.core".

В тази папка, в отделни поддиректории се пазят конфигурационните файлове на всеки един от сървърите “създадени” през Eclipse. Поддиректориите са именувани с tmp[i], където с [i] е означен поредния номер на сървъра в зависимост от последователността на създаването му. Например за следните сървъри

имаме съответните конфигурационни директории:

drwxrwxrwx   1 user     group           0 Aug 22 08:54 tmp0
drwxrwxrwx   1 user     group           0 Aug 22 08:55 tmp1
drwxrwxrwx   1 user     group           0 Aug 29 17:23 tmp2

Всяка една от папките има структура подобна на подразбиращата се за Tomcat:

d:eclipse-workspace.metadata.pluginsorg.eclipse.wst.server.coretmp2>ls -al
total 0
drwxrwxrwx   1 user     group           0 Aug 29 17:23 .
drwxrwxrwx   1 user     group           0 Aug 29 17:23 ..
drwxrwxrwx   1 user     group           0 Aug 29 17:23 conf
drwxrwxrwx   1 user     group           0 Aug 29 17:23 logs
drwxrwxrwx   1 user     group           0 Sep  9 19:37 temp
drwxrwxrwx   1 user     group           0 Aug 29 17:23 webapps
drwxrwxrwx   1 user     group           0 Aug 29 17:23 work
drwxrwxrwx   1 user     group           0 Sep  9 13:18 wtpwebapps

Отново, по подобие на конфигурацията на стандартната инсталация на Tomcat, поставяме конфигурационния файл на Log4J log4j.properties в папката conf, изпълняваме стъпките описани в предходната секция и voilà, логването е включено.

Share
авг 202011
 

Рано или късно, след една, две или няколко преинсталации на операционната система, всеки от нас достига до извода, че трябва да инсталира потребителските програми на дял/твърд диск, различен от системния. Да, но повечето програми, при инсталиране имат предефинирани настройки, които обикновено (поне в случая с Windows) очакват, че инсталацията на сътоветната програма е на системния дял. Подобен е случая и с Eclipse и Maven.

Промяна на Maven хранилището на локалния компютър

Дори Maven да е инсталиран на  дял различен от системния, по подразбиране Maven хранилището  на локалния компютър се очаква, че ще бъде по подразбиране точно на системния дял:

  • за Windows (Vista/7) то е в  C:\Users\<WINDOWS_USERNAME>\.m2\repository
  • за  Linux в ~/.m2/repository

Ако искаме да променим местоположението на локалното хранилище, да бъде на дял различен от системния например, единственото, което е нужно да направим е да променим конфигурационния файл на Maven – settings.xml, намиращ се в инсталационната директория на Maven. За целта, разкоментираме тагът localRepository и добавяме пътя до новата директория, която ще бъде използвана за хранилище:

<settings>
...
<localrepository>/path/to/local/repo/</localrepository>
...
</settings>

В моя случай, промяната изглежда по следния начин:

<settings>
...
<localrepository>D:/config/maven/.m2/repository</localrepository>
...
</settings>

Eclipse и новото хранилище

По подразбиране Eclipse използва собствена инстанция на Maven. За локално хранилище, по подразбиране, използва следните папки:

  • за Windows (Vista/7) в  C:\Users\<WINDOWS_USERNAME>\.m2\repository
  • за  Linux в ~/.m2/repository

Ако инсталираме Maven на място различно от това по подразбиране и конфигурираме локалното хранилище да бъде на място различно от това, което се очаква по принцип, инсталирането на генерираните от Maven архиви (jar,war, и т.н.) в локалното хранилище, ще се записват на новоуказаното място.

Ако не отразим тези промени и в Eclipse, той ще използва собствената инстанция на Maven и собствени настройки за локално Maven хранилище. Съответно, ако Eclipse не намери папката .m2/repository в директорията на текущия потребител (user.home) на системния дял/диск, той я създава и инсталира генерираните архиви от Maven проектите там. Така, компилирането и инсталирането (в термините на Maven) на едни и същи проекти от командния ред и от Eclipse, ще доведе до съхраняването на архивите съответно на две различни места.

Нещо повече, не винаги версията на Maven, която Eclipse използва (M3 за Eclipse 3.6.1 например), съвпада с тази, която използваме в текущия проект (M2 за проекта, по който работя в момента). Както знаем, поради нововъведенията направени във връзка оптимизирането на работата на Maven във версия M3, Maven проектите, компилирани с тази версия са несъвместими с М2 и обратно.

Така можем да обобщим следните проблеми при промяна на локалното хранилище (и инсталация) на Maven, но неотразяването им в Eclipse:

  • Отново съхряняваме потребителски файлове на системния диск (тези генерирани от Eclipse);
  • Нямаме синхронизация при компилирането на проектите през команден ред или през средата за програмиране (компилиране през конзолата не води до промяна в Eclipse);
  • Възможна несъвместимост на файловете генерирани през команден ред и Eclipse в случай, че са използвани различни версии на Maven.

За да ги избегнем, трябва да направим две промени в настройките на Eclipse. Отваряме менюто Window > Preferences и променяме:

  • Указваме на Eclipse да използва новата инсталация на Maven: Maven > Installations > Add... и избираме директорията, %MAVEN_HOME%, която сочи към новата инсталация на Maven и която ще бъде използвана през командния ред.
  • Пренасочваме Eclipse да използва новото хранилище: Maven > User Settings > User Settings > Browse и избираме  местоположението от  settings.xml конфигурационния файл на Maven, което описва къде се намира в новото локално хранилище (обяснено в предходната секция).
По този начин уеднаквяваме версиите на Maven и на Maven хранилището използвани през командния ред и Eclipse.
Share