Issue Details (XML | Word | Printable)

Key: MIDEA-98
Type: Bug Bug
Status: Closed Closed
Resolution: Fixed
Priority: Major Major
Assignee: Dennis Lundberg
Reporter: Ben Hood
Votes: 1
Watchers: 2
Operations

If you were logged in you would be able to see more operations.
Maven 2.x IDEA Plugin

Module filepath is generated incorrectly

Created: 27/Jun/07 05:30 AM   Updated: 26/Jul/07 06:26 PM   Resolved: 15/Jul/07 02:15 PM
Return to search
Component/s: None
Affects Version/s: 2.1
Fix Version/s: 2.2

Time Tracking:
Not Specified

File Attachments: 1. File toRelative-2.out (6 kB)
2. File toRelative.out (6 kB)

Environment:
$ mvn -v
Maven version: 2.0.7
Java version: 1.5.0_11
OS name: "windows xp" version: "5.1" arch: "x86"
cygwin
Issue Links:
Duplicate
 


 Description  « Hide

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.



Christian Nelson added a comment - 28/Jun/07 11:49 PM

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.


Dennis Lundberg added a comment - 29/Jun/07 03:15 PM

Ben, what version of IDEA are you using?


Ben Hood added a comment - 02/Jul/07 05:27 AM

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


Christian Nelson added a comment - 02/Jul/07 09:11 AM

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?


Petr Panuska added a comment - 11/Jul/07 03:34 AM

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"/>
...


Dennis Lundberg added a comment - 13/Jul/07 07:02 PM

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.


Christian Nelson added a comment - 13/Jul/07 08:41 PM

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.


Christian Nelson added a comment - 13/Jul/07 08:42 PM

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.


Dennis Lundberg added a comment - 14/Jul/07 11:09 AM

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.


Christian Nelson added a comment - 14/Jul/07 12:56 PM

Here's all of the toRelative output under cygwin.


Dennis Lundberg added a comment - 14/Jul/07 01:47 PM

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.


Dennis Lundberg added a comment - 14/Jul/07 03:45 PM

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


Christian Nelson added a comment - 14/Jul/07 07:24 PM

This is with the latest snapshot.


Dennis Lundberg added a comment - 15/Jul/07 02:15 PM

Fixed in SVN r556436.


Ben Hood added a comment - 16/Jul/07 04:10 AM

Works for me. Thanks Dennis!


Christian Nelson added a comment - 16/Jul/07 10:10 AM

And for me. Thanks!