Intellij 9 exploded webapps, jboss and JRebel

IntelliJ forces me to name the artifact xxxxx.war although it's an exploded directory being created by IDEA.
Maven also produces xxxxx and xxxxx.war in the target directory. Hence I need to rename the exploded
dir to avoid a name collision.

Generating a rebel.xml in IDEA gives:

...
 <classpath>
 <dir name="/Users/nnn/Project/nnn-trunk/core-webapp/target/classes">
 </dir>
</classpath>
...

Seems fine at first but the problem is. IDEA packages the classes into the exploded webapp.
This makes JRebel load the classes twice.

A possible fix:

    <classpath fallback="default">
        <dir name="${rebel.root}/core-webapp/target/core-webapp.war/WEB-INF/classes">
        </dir>
    </classpath>



This works for Intellij IDEA users of the project (yes the rebel.xml is checked into vcs), but not
for the poor souls using Eclipse i.e.

If IDEA didn't force me to use a .war extension I could point the exploded dir to the maven created
one.

Any ideas of a better solution?

/S
2 comments
Comment actions Permalink

It's not IntelliJ which forces you to use a .war extension, it's JBoss.
When deploying an artifact, JBoss uses the file extension to choose the
correct deployer bean. If you don't use a .war extension, then JBoss
doesn't know that you want to deploy a web application.

IntelliJ itself doesn't care about the extension, you could name your
exploded directory whatever you want. It just warns you about the fact
that you won't be able to deploy this to JBoss.

On 1/23/2010 5:43 PM, Sigmund Lundgren wrote:

IntelliJ forces me to name the artifact xxxxx.war although it's an exploded directory being created by IDEA.
Maven also produces xxxxx and xxxxx.war in the target directory. Hence I need to rename the exploded
dir to avoid a name collision.

>

Generating a rebel.xml in IDEA gives:

>

..
  <classpath>
  <dir name="/Users/nnn/Project/nnn-trunk/core-webapp/target/classes">
  </dir>
</classpath>
..

>

Seems fine at first but the problem is. IDEA packages the classes into the exploded webapp.
This makes JRebel load the classes twice.

>

A possible fix:

>

     <classpath fallback="default">
         <dir name="${rebel.root}/core-webapp/target/core-webapp.war/WEB-INF/classes">
         </dir>
     </classpath>

>

This works for Intellij IDEA users of the project (yes the rebel.xml is checked into vcs), but not
for the poor souls using Eclipse i.e.

>

If IDEA didn't force me to use a .war extension I could point the exploded dir to the maven created
one.

>

Any ideas of a better solution?

>

/S

>

---
Original message URL: http://www.jetbrains.net/devnet/message/5255064#5255064


--
Martin Fuhrer
Fuhrer Engineering AG
http://www.fuhrer.com

0
Comment actions Permalink

Yes, that's correct - what I mean was that there should be some way around that.

/S

0

Please sign in to leave a comment.