I misspoke slightly. I meant to say that if I remove the snippet than everything works fine - except that the jcasgen files are not generated. It only compiles in my case because the generated source files are still sitting around from a previous run of jcasgen.

On 6/18/2010 2:50 PM, Philip Ogren wrote:
Hi,

We have been using a snippet for our pom.xml file pretty much exactly like the one below to run JCasGen on our type system descriptor before compilation. When I switched to 2.3.0 this doesn't work anymore. For example, when I run "mvn test", JCasGen will generate the files but then maven just exits without an error message and without running the tests. If I remove this block of xml from the pom, then everything works fine.

Any thoughts about how I would go about fixing this? Or, does anyone have another snippet of xml I could insert into my pom.xml to get the same behavior?

Thanks,
Philip

On 7/6/2009 7:58 AM, Ramon Ziai wrote:
Hi,

just as a follow-up to this, I found a solution to this that works for
me. Here's the relevant POM snippet, in the hope that it will be useful
for others:

[...]
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>1.1</version>
<executions>
<execution>
<phase>validate</phase>
<goals>
<goal>java</goal>
</goals>
</execution>
</executions>
<configuration>
<mainClass>org.apache.uima.tools.jcasgen.Jg</mainClass>
<arguments>
<argument>-jcasgeninput</argument>
<argument>desc/yourTypeSystem.xml</argument>
<argument>-jcasgenoutput</argument>
<argument>src/main/java</argument>
</arguments>
</configuration>
</plugin>
[...]

This will run JCasGen prior to the compile phase, ensuring that build
dependencies are satisfied. JCasGen is run without the merge capability,
so manual changes to the generated Java files will be lost.

Best,
Ramon

Александър Л. Димитров schrieb:
Hello,

I'm currently working on a distributed project involving UIMA. At this stage, sometimes modifications to the UIMA descriptor files are absolutely necessary and, unfortunately, this confuses our VCS. Whenever JCasGen is run from within Eclipse or similar, it updates *all* generated class files, which leads the VCS
to treating them as new commits. The problem here is, when editing the
descriptors on different branches, while the merging of the descriptor files goes well most of the time, the merging of the class files fails most of the
time. This leaves the merger with several dozen conflicts.

The current policy is to then just delete those files and run JCasGen on the merged branch. Of course, the actual problem here is, that one shouldn't really
track those files in the first place.

But the matter is slightly more delicate. After checking out the project from version control, the project should be readily compilable, without further setup. That's why we're using Maven to fetch all dependencies and automate the build process. Without having these files in source control, they have to be
generated first.

So the real question is: is there any way to run a JCasGen from within the Maven build? Probably a plugin? Of course, one could just spawn a process to call org.apache.uima.tools.jcasgen.Jg, but I wanted to ask if such a thing already
existed.

Thanks,
Aleks

Reply via email to