Details
-
Type:
Improvement
-
Status:
Open
-
Priority:
Minor
-
Resolution: Unresolved
-
Affects Version/s: None
-
Fix Version/s: None
-
Component/s: None
-
Labels:None
-
Environment:All OS, no special specs for this feature.
-
Number of attachments :
Description
Library jars are not usually deployed in the same directory than the executable application file. Usually, libraries are deployed in subdirectories of the project root, even sometimes general library paths accessible by many applications.
The change I submit here uses a property you define at the project and that can be overriden for a sinble dependency.
The project property looks like this:
<properties>
<jar.dependency.dist.dir>lib</jar.dependency.dist.dir>
</properties>
The same entry is used in a dependency entry in project.xml.
The code change required in the plugin is this (CVS diff):
-
-
-
-
- CVS exited normally with code 0 *****
-
-
-
cvs diff -r 1.1 -r 1.2 -wb -i plugin.jelly plugin.jelly (in directory C:\Work\cvs-nhc-maven\nhc-maven\maven-plugins\jar)
Index: plugin.jelly
===================================================================
RCS file: /home/cvs/cvsroot/nhc-maven/maven-plugins/jar/plugin.jelly,v
retrieving revision 1.1
retrieving revision 1.2
diff -w -b -i -r1.1 -r1.2
55a56,60
> <!-- Get the project level deployment sub-directory if it exists -->
> <j:if test="${pom.getProperty('jar.dependency.dist.dir')!=null}">
> <j:set var="projectDepDeployDir" value="${pom.getProperty('jar.dependency.dist.dir')}${'/'}"/>
> </j:if>
>
58c63,69
< <j:set var="maven.jar.classpath" value="${maven.jar.classpath} ${dep.artifact}" />
—
> <!-- Set default deploy sub-dir for dependencies to project level property value -->
> <j:set var="depDeployDir" value="${projectDepDeployDir}"/>
> <!-- Check to see if the jar.dependency.deploy.dir was overriden at the dependency level -->
> <j:if test="${dep.getProperty('jar.dependency.dist.dir')!=null}">
> <j:set var="depDeployDir" value="${dep.getProperty('jar.dependency.dist.dir')}${'/'}"/>
> </j:if>
> <j:set var="maven.jar.classpath" value="${maven.jar.classpath} ${depDeployDir}${dep.artifact}" />
Added the whole plugin.jelly file since I've just realize that the CVS diff i've put in the description is not right... Its a diff against an already modified version of the file. Won't do much good to you guys. Sorry about that.