Maven 2.x IDEA Plugin

Module filepath is generated incorrectly

Details

  • Type: Bug Bug
  • Status: Closed Closed
  • Priority: Major Major
  • Resolution: Fixed
  • Affects Version/s: 2.1
  • Fix Version/s: 2.2
  • Component/s: None
  • Labels:
    None
  • Environment:
    $ mvn -v
    Maven version: 2.0.7
    Java version: 1.5.0_11
    OS name: "windows xp" version: "5.1" arch: "x86"
    cygwin
  • Number of attachments :
    2

Description

I have a multi-module mvn project.

When I do an mvn idea:clean idea:idea, the following ProjectModuleManager snippet in the top level .ipr is generated:

<component name="ProjectModuleManager">
<modules>
<!-- module filepath="$$PROJECT_DIR$$/${pom.artifactId}.iml"/ -->
<module filepath="$PROJECT_DIR$/gateway.iml"/>
<module filepath="$PROJECT_DIR$/C:/dev/voca/gateway/domain/gateway-domain.iml"/>
<module filepath="$PROJECT_DIR$/C:/dev/voca/gateway/instruction-store/gateway-instruction-store.iml"/>
<module filepath="$PROJECT_DIR$/C:/dev/voca/gateway/parser/gateway-parser.iml"/>
<module filepath="$PROJECT_DIR$/C:/dev/voca/gateway/psrgeneration/gateway-psr-generation.iml"/>
<module filepath="$PROJECT_DIR$/C:/dev/voca/gateway/output/gateway-output.iml"/>
<module filepath="$PROJECT_DIR$/C:/dev/voca/gateway/destination-resolver/gateway-destination-resolver.iml"/>
<module filepath="$PROJECT_DIR$/C:/dev/voca/gateway/choreography/gateway-choreography.iml"/>
<module filepath="$PROJECT_DIR$/C:/dev/voca/gateway/presentation/gateway-presentation.iml"/>
<module filepath="$PROJECT_DIR$/C:/dev/voca/gateway/assembly/gateway-assembly.iml"/>
</modules>
</component>

The $PROJECT_DIR in this case is C:/dev/voca/gateway/.

But this path is being appended in a hard-coded fashion after the $PROJECT_DIR entry.

The symptom in Intellij is the following error message:

Cannot load module: File C:\dev\voca\gateway\C:\dev\voca\gateway\domain\gateway-domain.iml does not exist
Would you like to remove the module from the project?

The workaround is to delete the extra appended file path from each module entry in the above mentioned snippet.

  1. toRelative.out
    14/Jul/07 12:56 PM
    6 kB
    Christian Nelson
  2. toRelative-2.out
    14/Jul/07 7:24 PM
    6 kB
    Christian Nelson

Issue Links

Activity

Hide
Christian Nelson added a comment -

I have run into this same error. WIndows Xp and 2003, Java 1.5.0_12 and 1.6.0_01, Maven 2.0.6 and 2.0.7, IDEA 6.0.5.

The project I'm running against can be found at:

https://logan.carbonfive.com/svn/public/webapp-reference/tags/maven-idea-bug/

If there's anything I can to to help diagnose, let me know. If it's any help, I only started seeing this behavior very recently... I think it might have been introduced in the last week or two.

Show
Christian Nelson added a comment - I have run into this same error. WIndows Xp and 2003, Java 1.5.0_12 and 1.6.0_01, Maven 2.0.6 and 2.0.7, IDEA 6.0.5. The project I'm running against can be found at: https://logan.carbonfive.com/svn/public/webapp-reference/tags/maven-idea-bug/ If there's anything I can to to help diagnose, let me know. If it's any help, I only started seeing this behavior very recently... I think it might have been introduced in the last week or two.
Hide
Dennis Lundberg added a comment -

Ben, what version of IDEA are you using?

Show
Dennis Lundberg added a comment - Ben, what version of IDEA are you using?
Hide
Ben Hood added a comment -

I'm using 6.0.5, but does that have anything to do with the ipr file generation?

Show
Ben Hood added a comment - I'm using 6.0.5, but does that have anything to do with the ipr file generation?
Hide
Christian Nelson added a comment -

I agree, I don't think it could. I manually fix my .ipr before even starting IDEA, so there's no chance that the IDE is mucking things up. It's a maven-plugin problem. Is there anything else we can could to help diagnose?

Show
Christian Nelson added a comment - I agree, I don't think it could. I manually fix my .ipr before even starting IDEA, so there's no chance that the IDE is mucking things up. It's a maven-plugin problem. Is there anything else we can could to help diagnose?
Hide
Petr Panuska added a comment -

I am using maven 2.0.5 and do not encounter this issue. My colleague uses 2.0.7 (on the same project) and encounters this issue.

My idea project contains:
<module filepath="$PROJECT_DIR$/hermes.iml"/>
<module filepath="$PROJECT_DIR$/repository/repository.iml"/>
...

his contains:
<module filepath="$PROJECT_DIR$/c:/work/hermes.iml"/>
<module filepath="$PROJECT_DIR$/c:/work/repository/repository.iml"/>
...

Show
Petr Panuska added a comment - I am using maven 2.0.5 and do not encounter this issue. My colleague uses 2.0.7 (on the same project) and encounters this issue. My idea project contains: <module filepath="$PROJECT_DIR$/hermes.iml"/> <module filepath="$PROJECT_DIR$/repository/repository.iml"/> ... his contains: <module filepath="$PROJECT_DIR$/c:/work/hermes.iml"/> <module filepath="$PROJECT_DIR$/c:/work/repository/repository.iml"/> ...
Hide
Dennis Lundberg added a comment -

Thanks to Christian I had something to test on. So I gave it a try. The top level .ipr file looks like this for me:

<component name="ProjectModuleManager"> 
    <modules> 
      <!-- module filepath="$$PROJECT_DIR$$/${pom.artifactId}.iml"/ -->  
      <module filepath="$PROJECT_DIR$/webapp-reference.iml"/>
      <module filepath="$PROJECT_DIR$/webapp-reference-core/webapp-reference-core.iml"/>
      <module filepath="$PROJECT_DIR$/webapp-reference-web/webapp-reference-web.iml"/>
    </modules> 
  </component>

This test was done using Maven 2.0.7 with Sun Java 1.5.0_11 on Windows XP.

So to me everything is working as expected.

Show
Dennis Lundberg added a comment - Thanks to Christian I had something to test on. So I gave it a try. The top level .ipr file looks like this for me:
<component name="ProjectModuleManager"> 
    <modules> 
      <!-- module filepath="$$PROJECT_DIR$$/${pom.artifactId}.iml"/ -->  
      <module filepath="$PROJECT_DIR$/webapp-reference.iml"/>
      <module filepath="$PROJECT_DIR$/webapp-reference-core/webapp-reference-core.iml"/>
      <module filepath="$PROJECT_DIR$/webapp-reference-web/webapp-reference-web.iml"/>
    </modules> 
  </component>
This test was done using Maven 2.0.7 with Sun Java 1.5.0_11 on Windows XP. So to me everything is working as expected.
Hide
Christian Nelson added a comment -

This is what I get on my machine:

<component name="ProjectModuleManager"> 
    <modules> 
      <!-- module filepath="$$PROJECT_DIR$$/${pom.artifactId}.iml"/ -->  
      <module filepath="$PROJECT_DIR$/webapp-reference.iml"/>
      <module filepath="$PROJECT_DIR$/D:/Development/Projects/WAP-MVN/webapp-reference-core/webapp-reference-core.iml"/>
      <module filepath="$PROJECT_DIR$/D:/Development/Projects/WAP-MVN/webapp-reference-web/webapp-reference-web.iml"/>
    </modules> 
  </component>

$ mvn -v
Maven version: 2.0.7
Java version: 1.6.0_02
OS name: "windows xp" version: "5.1" arch: "x86"

I am also running this under cygwin, which might have something to do with it.

Show
Christian Nelson added a comment - This is what I get on my machine:
<component name="ProjectModuleManager"> 
    <modules> 
      <!-- module filepath="$$PROJECT_DIR$$/${pom.artifactId}.iml"/ -->  
      <module filepath="$PROJECT_DIR$/webapp-reference.iml"/>
      <module filepath="$PROJECT_DIR$/D:/Development/Projects/WAP-MVN/webapp-reference-core/webapp-reference-core.iml"/>
      <module filepath="$PROJECT_DIR$/D:/Development/Projects/WAP-MVN/webapp-reference-web/webapp-reference-web.iml"/>
    </modules> 
  </component>
$ mvn -v Maven version: 2.0.7 Java version: 1.6.0_02 OS name: "windows xp" version: "5.1" arch: "x86" I am also running this under cygwin, which might have something to do with it.
Hide
Christian Nelson added a comment -

Same thing, but from a non-cygwin shell:

<component name="ProjectModuleManager"> 
    <modules> 
      <!-- module filepath="$$PROJECT_DIR$$/${pom.artifactId}.iml"/ -->  
      <module filepath="$PROJECT_DIR$/webapp-reference.iml"/>
      <module filepath="$PROJECT_DIR$/webapp-reference-core/webapp-reference-core.iml"/>
      <module filepath="$PROJECT_DIR$/webapp-reference-web/webapp-reference-web.iml"/>
    </modules> 
  </component>

Looks like cygwin IS the problem.

Show
Christian Nelson added a comment - Same thing, but from a non-cygwin shell:
<component name="ProjectModuleManager"> 
    <modules> 
      <!-- module filepath="$$PROJECT_DIR$$/${pom.artifactId}.iml"/ -->  
      <module filepath="$PROJECT_DIR$/webapp-reference.iml"/>
      <module filepath="$PROJECT_DIR$/webapp-reference-core/webapp-reference-core.iml"/>
      <module filepath="$PROJECT_DIR$/webapp-reference-web/webapp-reference-web.iml"/>
    </modules> 
  </component>
Looks like cygwin IS the problem.
Hide
Dennis Lundberg added a comment -

Great new Christian, now we're getting close.

I have a hunch that this is a case problem. To verify this I have added some debugging code and deployed a new 2.2-SNAPSHOT of this plugin. Would you mind trying it on your project using "mvn -X idea:idea". Post the results of the "[DEBUG] toRelative..." lines at the end of the build here.

Show
Dennis Lundberg added a comment - Great new Christian, now we're getting close. I have a hunch that this is a case problem. To verify this I have added some debugging code and deployed a new 2.2-SNAPSHOT of this plugin. Would you mind trying it on your project using "mvn -X idea:idea". Post the results of the "[DEBUG] toRelative..." lines at the end of the build here.
Hide
Christian Nelson added a comment -

Here's all of the toRelative output under cygwin.

Show
Christian Nelson added a comment - Here's all of the toRelative output under cygwin.
Hide
Dennis Lundberg added a comment -

Thanks Christian.

I you look at lines 7-8 in your file, you can see that the difference in case makes toRelative() produce the wrong results for the sub-project .iml files. Compare "d:\Development..." to "D:\Development...".

Now I just need to figure out a good way to solve this.

Show
Dennis Lundberg added a comment - Thanks Christian. I you look at lines 7-8 in your file, you can see that the difference in case makes toRelative() produce the wrong results for the sub-project .iml files. Compare "d:\Development..." to "D:\Development...". Now I just need to figure out a good way to solve this.
Hide
Dennis Lundberg added a comment -

OK, new SNAPSHOT deployed with a possible solution.
Please give it a try and post your "toRelative..." output once again.

Show
Dennis Lundberg added a comment - OK, new SNAPSHOT deployed with a possible solution. Please give it a try and post your "toRelative..." output once again.
Hide
Christian Nelson added a comment -

This is with the latest snapshot.

Show
Christian Nelson added a comment - This is with the latest snapshot.
Hide
Dennis Lundberg added a comment -

Fixed in SVN r556436.

Show
Dennis Lundberg added a comment - Fixed in SVN r556436.
Hide
Ben Hood added a comment -

Works for me. Thanks Dennis!

Show
Ben Hood added a comment - Works for me. Thanks Dennis!
Hide
Christian Nelson added a comment -

And for me. Thanks!

Show
Christian Nelson added a comment - And for me. Thanks!

People

Vote (1)
Watch (2)

Dates

  • Created:
    Updated:
    Resolved: