Details
-
Type:
Bug
-
Status:
Closed
-
Priority:
Major
-
Resolution: Fixed
-
Affects Version/s: 2.0.4
-
Fix Version/s: 2.1.0, 3.0-alpha-3
-
Component/s: Plugins and Lifecycle
-
Labels:None
-
Complexity:Intermediate
-
Number of attachments :
Description
In a plugin I wrote (jspc), needs the dependency jars. It asks for this with the request for the project.compileClasspathElements. In a multiproject environment, when each project is built individually, it seems correct. Example (when run with -X ina subproject dir) showing classpath:
/Users/mbp/.m2/repository/javax/servlet/jsp-api/2.0/jsp-api-2.0.jar
/Users/mbp/.m2/repository/taglibs/standard/1.1.2/standard-1.1.2.jar
/Users/mbp/.m2/repository/javax/servlet/servlet-api/2.4/servlet-api-2.4.jar
/Users/mbp/.m2/repository/tldtestapp/testexttld/1/testexttld-1.jar <-----------------NOTICE HERE - THIS IS AN ARTIFACT FROM ANOTHER SUBPROJECT
/Users/mbp/.m2/repository/javax/servlet/jstl/1.1.2/jstl-1.1.2.jar]
When it is run from the Top level/Root project...here is the output:
Users/mbp/.m2/repository/javax/servlet/jsp-api/2.0/jsp-api-2.0.jar
/Users/mbp/.m2/repository/javax/servlet/servlet-api/2.4/servlet-api-2.4.jar
/Users/mbp/.m2/repository/taglibs/standard/1.1.2/standard-1.1.2.jar
/Users/mbp/Desktop/jsp-example/TestTldProject/target/classes <----------------NOTICE - THE JAR IS NOT BEING ASKED FOR, BUT A CLASSES DIR INSTEAD
/Users/mbp/.m2/repository/javax/servlet/jstl/1.1.2/jstl-1.1.2.jar]
The second project has a dependency on the testexttld-1.jar because it contains tag libs which must be wrapped in a jar. When run from a top level, it uses the other project's classes directory instead of the JAR artifact. WIth JSPC and taglibs, this makes it so it cannot work. If I have a dependency on a jar, that jar should be the dependency as expected and not a classes directory. For full explanation and example see here:
Issue Links
- is duplicated by
-
MNG-2151
classpath used to build a module affects compile classpath for building another module
-
-
MNG-3420
In a reactor, attached artifacts with classifier should be used when generating classpath, instead of the whole output directory of the related project
-
-
MNG-4032
Test jar dependency not available for for main classes in multi module builds
-
-
MNG-4608
Cross module dependencies for multi-module projects
-
- is related to
-
MJSPC-4
JSPs Cannot Be Compiled if They Depend on Tag Files
-
- relates to
-
MNG-2045
Maven can't compile against sibling test-jar dependency in multiproject (Test Attached)
-
-
MNG-4248
CLONE -Maven can't compile against sibling test-jar dependency in multiproject (Test Attached)
-
-
MSHADE-42
Reactor builds do not use shaded jar
-
Activity
| Field | Original Value | New Value |
|---|---|---|
| Fix Version/s | Reviewed [ 13555 ] |
| Fix Version/s | Reviewed Pending Version Assignment [ 13555 ] | |
| Fix Version/s | 2.1.0-M3 [ 14588 ] |
| Assignee | John Casey [ jdcasey ] |
| Status | Open [ 1 ] | In Progress [ 3 ] |
| Status | In Progress [ 3 ] | Open [ 1 ] |
| Fix Version/s | 2.1.0-M3 [ 14588 ] | |
| Fix Version/s | 2.1.0-M2 [ 14587 ] | |
| Resolution | Fixed [ 1 ] | |
| Status | Open [ 1 ] | Closed [ 6 ] |
| Fix Version/s | 3.0-alpha-3 [ 14719 ] |