Thanks Igor I will happily receive pointer to implement a java project configurator. Cheers Lucas 22 aug 2013 kl. 16:10 skrev Igor Fedorenko <i...@ifedorenko.com>:
> It is not possible to configure m2e to do what you want and generally > m2e only supports projects that are fully contained under their base > directory. You should be able to implement alternative java project > configurator that will configure classpath like you need. I can provide > pointers on m2e-dev if you want to try. > > -- > Regards, > Igor > > On 2013-08-22 9:20 AM, Lucas Persson wrote: >> Hi >> >> I have defined that the target folder (and target/classes) shall be outside >> the project's folder. >> The reason to have it like this is that I am using a proprietary SCM which >> do not allow write access unless a file is checkout out. >> And als it does not have any type of "ignore" filter. >> >> The thing is that every time I do "Maven->Update Project..." it fails like >> this: >> >> An internal error occurred during: "Updating Maven Project". >> Path must include project and resource name: /tiget-api >> >> java.lang.IllegalArgumentException: Path must include project and resource >> name: /tiget-api >> at org.eclipse.core.runtime.Assert.isLegal(Assert.java:63) >> at >> org.eclipse.core.internal.resources.Workspace.newResource(Workspace.java:2163) >> at >> org.eclipse.core.internal.resources.Container.getFolder(Container.java:222) >> at >> org.eclipse.m2e.core.project.configurator.AbstractLifecycleMapping.configure(AbstractLifecycleMapping.java:71) >> >> >> >> I am not sure what m2e does here but I guess it is updating the output >> folder (among other things) >> >> It seems that if I do not use target folders outside the project's folder >> the "Maven->Update Project..." succeeds. >> >> The real only issue I can see after that "Maven->Update Project..." fails is >> that when I try to run JUnit then the Junit launch classpath is not >> including the target/classes and target/test-classes folders. So JUnit will >> always end up in class not found for the test class. >> >> >> So in the root pom(parent pom) I have something like this: >> >> >> <properties> >> <rootTargetDirectory>${env.M2_TARGET}</rootTargetDirectory> >> >> <targetDirectory>${rootTargetDirectory}/${project.groupId}/${project.artifactId}/target</targetDirectory> >> .... >> >> <build> >> <sourceDirectory>${basedir}/src/main/java</sourceDirectory> >> <testSourceDirectory>${basedir}/src/test/java</testSourceDirectory> >> <directory>${targetDirectory}</directory> >> <outputDirectory>${targetDirectory}/classes</outputDirectory> >> >> <testOutputDirectory>${targetDirectory}/test-classes</testOutputDirectory> >> .... >> >> >> And in order to make sure the both Eclipse and Maven compiles to same output >> folder I have it like this in .classpath and .project >> >> <classpath> >> <classpathentry kind="src" path="src/main/java"/> >> <classpathentry kind="src" path="src/test/java" >> output="target/test-classes"/> >> <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/> >> <classpathentry kind="con" >> path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER"/> >> <classpathentry kind="output" path="target/classes"/> >> </classpath> >> >> <?xml version="1.0" encoding="UTF-8"?> >> <projectDescription> >> <name>tiget-api</name> >> <comment></comment> >> <projects> >> </projects> >> <buildSpec> >> <buildCommand> >> <name>org.eclipse.jdt.core.javabuilder</name> >> <arguments> >> </arguments> >> </buildCommand> >> <buildCommand> >> <name>org.eclipse.m2e.core.maven2Builder</name> >> <arguments> >> </arguments> >> </buildCommand> >> </buildSpec> >> <natures> >> <nature>org.eclipse.jdt.core.javanature</nature> >> <nature>org.eclipse.m2e.core.maven2Nature</nature> >> </natures> >> <linkedResources> >> <link> >> <name>target</name> >> <type>2</type> >> >> <locationURI>M2_TARGET/tiget.core/tiget-api/target</locationURI> >> </link> >> </linkedResources> >> </projectDescription> >> >> And M2_TARGET is a Eclipse "Linke resource" path variable which all >> developers in my team needs to defined in their workspace. >> >> So this works very well until we started to use m2e plugin for dependency >> management. >> >> >> >> So basically is there some way to configure m2e to for instance not updating >> the output folder? >> Or can I make some sort of extension to m2e to fix this? >> >> >> >> I am using m2e plugin of 1.4 in Eclipse Indigo >> >> >> Thanks >> Lucas >> _______________________________________________ >> m2e-users mailing list >> m2e-users@eclipse.org >> https://dev.eclipse.org/mailman/listinfo/m2e-users >> > _______________________________________________ > m2e-users mailing list > m2e-users@eclipse.org > https://dev.eclipse.org/mailman/listinfo/m2e-users _______________________________________________ m2e-users mailing list m2e-users@eclipse.org https://dev.eclipse.org/mailman/listinfo/m2e-users