incubator-ctakes-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Steven Bethard <steven.beth...@Colorado.EDU>
Subject Re: Eclipse, Maven and JCasGen
Date Fri, 28 Sep 2012 17:17:00 GMT
On Sep 28, 2012, at 11:06 AM, "Chen, Pei" <Pei.Chen@childrens.harvard.edu> wrote:
> Would one still be able to build from the command line via mvn install in the suggestion?

Yep, from the command line, it would just invoke the jcasgen-maven-plugin directly, essentially
in the same way we invoke exec-maven-plugin + build-helper-maven-plugin now. So command line
people wouldn't have to do anything extra at all.

> [Not sure if everyone prefers Eclipse as their editor of choice]

For command line people, as I explained above, everything will still work smoothly.

I don't know much about other IDEs, e.g. IntelliJ. If they work now, they probably already
run JCasGen on every single file change, like Eclipse does, and the m2e connector won't help
them. But it also won't make it any worse - the m2e connector is *only* used in Eclipse, the
pom.xml files have no notion of it at all - they just see the regular <plugin> definitions.

Steve

> 
>> -----Original Message-----
>> From: Steven Bethard [mailto:steven.bethard@Colorado.EDU]
>> Sent: Friday, September 28, 2012 11:59 AM
>> To: ctakes-dev@incubator.apache.org
>> Subject: Eclipse, Maven and JCasGen
>> 
>> Have any of you working on the new cTAKES trunk noticed JCasGen
>> constantly running? I have Eclipse set to "Build Automatically" and I'm
>> constantly seeing tasks running in the background in my Progress view that
>> look like:
>> 
>> Compiling ctakes-type-system/target/generated-sources/...
>> Refreshing ctakes-type-system/target/generated-sources/...
>> 
>> These tasks run, complete and then immediately start again, and as a result,
>> my Eclipse runs very slowly. Are other people experiencing this too?
>> 
>> I think the solution is to create a real jcasgen-maven-plugin and a proper m2e
>> connector that only runs JCasGen when the type system has changed (or on
>> project import, or if target/generated-sources/jcasgen is missing, etc.).
>> 
>> What do you all think? Does this approach sound okay? I have a working
>> plugin and m2e connector, but I didn't want to just commit the change
>> because if I do, everyone will have to install the m2e connector in their
>> Eclipse environment. So I figured we should discuss it first.
>> 
>> Steve
>> 
>> P.S. For anyone was experiencing the same problem, could you try out the
>> following fix?
>> 
>> (1) Apply the attached patch to cTAKES trunk, which uses the jcasgen-
>> maven-plugin in the pom.xml files instead of the exec-maven-plugin and
>> build-helper-maven-plugin:
>>    $ svn patch ctakes-jcasgen-maven-plugin.diff
>> 
>> (2) Open Eclipse, and refresh your cTAKES checkout. You should see a bunch
>> of errors in the Problems view that look like "Project configuration is not up-
>> to-date with pom.xml. Run Maven->Update Project or use Quick Fix."
>> 
>> (3) Update the Maven projects as suggested.
>> 
>> (4) You should now see some new errors that look like: "Plugin execution not
>> covered by lifecycle configuration: org.cleartk:jcasgen-maven-
>> plugin:0.9.0:generate (execution: default, phase: generate-sources)"
>> 
>> (5) Install the m2e connector for the jcasgen-maven-plugin. Go to Help ->
>> Install New Software..., add the update site
>> http://cleartk.googlecode.com/git/jcasgen-m2e-
>> connector/org.cleartk.plugin.jcasgen.m2e.repo/target/repository/ and install
>> the "m2e connector for JCasGen Maven plugin". Eclipse will restart.
>> 
>> (6) Update the Maven projects again, as in step (3). The errors should all be
>> gone now.
>> 
>> Some things to try to make sure the fix worked:
>> 
>> (1) Check that  JCasGen is no longer be constantly running in the background.
>> Go to the Progress view and make sure that eventually you see just "No
>> operations to display at this time."
>> 
>> (2) Modify a few non-type-system files and and make sure (in the Progress
>> view again) that JCasGen does not run.
>> 
>> (3) Modify a type system, and make sure that JCasGen *does* run. An easy
>> way to check this is to change an annotation or feature name and make sure
>> you got some new compile errors.
>> 
> 


Mime
View raw message