Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Won't Fix
-
2.2
-
None
-
None
-
Patch
Description
Use case:
- I have non java source files in src/main/foo (for example a UML model)
- the "foo" artifact handler builds a zip containing the "foo" source files and its language is not "java" (for example the UML model zipped)
- I have a "bar" plugin which generates "bar" java source files from the "foo" source files in target/generated-sources/bar. (for example an MDA plugin)
- The "bar" plugin also builds a jar containing the target/generated-sources/bar java source files and attachs it with a "bar" classifier.
So even if the language of my project's artifact handler is not set to "java", since my project contains java source code (generated), my project should be considered a java project so that it can be referenced in multiproject mode by other projects in their build path.
The effect is obtained by replacing :
isJavaProject = "java".equals( artifactHandler.getLanguage() ) && !"ear".equals( packaging );
by
isJavaProject = ("java".equals(artifactHandler.getLanguage()) || sourceDirs.length > 0)
&& !"ear".equals(packaging);
and moving the code which builds the sourceDirs from the EclipsePlugin#writeConfiguration( IdeDependency[] deps ) to the EclipsePlugin#setup() method.
Regards,
Cédric