[ http://jira.codehaus.org/browse/MPECLIPSE-60?page=all ]
fabrizio giustina updated MPECLIPSE-60: --------------------------------------- Fix Version: (was: 1.9) > Downloading source zips > ----------------------- > > Key: MPECLIPSE-60 > URL: http://jira.codehaus.org/browse/MPECLIPSE-60 > Project: maven-eclipse-plugin > Type: New Feature > Versions: 1.9 > Reporter: Krystian Nowak > Attachments: plugin.jelly.patch > > Original Estimate: 30 minutes > Remaining: 30 minutes > > I've attached plugin.jelly for maven-eclipse-plugin downloading sources from > ${repo}/${groupId}/src/${artifactId}-${version}.zip and installing it as > ${maven.repo.local}/${groupId}/src/${artifactId}-${version}.zip. > It does it for all jar dependencies having eclipse.source property set to > true. Example project.xml: > (...) > <dependencies> > <dependency> > <groupId>junit</groupId> > <artifactId>junit</artifactId> > <version>3.8.1</version> > <url>http://www.junit.org/</url> > <properties> > <eclipse.source>true</eclipse.source> > </properties> > </dependency> > </dependencies> > (...) > What you have to do now is to call "maven eclipse" and refresh your project > in Eclipse. > And here is the code of plugin.jelly - a patch made in Eclipse: > Index: plugin.jelly > =================================================================== > RCS file: /home/cvspublic/maven-plugins/eclipse/plugin.jelly,v > retrieving revision 1.31 > diff -u -r1.31 plugin.jelly > --- plugin.jelly 16 Nov 2004 10:48:15 -0000 1.31 > +++ plugin.jelly 6 Dec 2004 08:10:33 -0000 > @@ -78,7 +78,8 @@ > <!-- Generate Eclipse .classpath file --> > <!--==================================================================--> > > <goal name="eclipse:generate-classpath" > - description="Generate Eclipse .classpath file"> > + description="Generate Eclipse .classpath file" > + prereqs="eclipse:sources:download"> > > <ant:echo>Creating ${basedir}/.classpath ...</ant:echo> > <j:file name="${basedir}/.classpath" prettyPrint="true" outputMode="xml" > xmlns="dummy"> > @@ -263,5 +264,73 @@ > > <ant:echo>Cleaned up eclipse generated files</ant:echo> > </goal> > + > + > + > + <!--==================================================================--> > + <!-- Download project dependency sources > --> > + <!--==================================================================--> > + > + <goal name="eclipse:sources:download"> > + <j:forEach var="depItem" items="${pom.getDependencies()}"> > + <j:if > test="${depItem.getType().equalsIgnoreCase('jar')}"> > + <j:if > test="${depItem.getProperty('eclipse.source') == 'true'}"> > + <j:set var="groupId" > value="${depItem.getGroupId()}"/> > + <j:set var="artifactId" > value="${depItem.getArtifactId()}"/> > + <j:set var="version" > value="${depItem.getVersion()}"/> > + <attainGoal > name="eclipse:source:download"/> > + <j:remove var="groupId"/> > + <j:remove var="artifactId"/> > + <j:remove var="version"/> > + </j:if> > + </j:if> > + </j:forEach> > + </goal> > + > + > + <!--==================================================================--> > + <!-- Download single source --> > + <!--==================================================================--> > + > + <goal name="eclipse:source:download"> > + <!-- > + param: groupId > + param: artifactId > + param: version > + --> > + <echo>Checking sources for ${groupId}:${artifactId} > ver.${version}</echo> > + <util:file var="localSrcFile" > name="${maven.repo.local}/${groupId}/src/${artifactId}-${version}.zip" /> > + <j:if test="${!localSrcFile.exists()}"> > + <mkdir dir="${maven.repo.local}/${groupId}/src" /> > + <j:set var="repoList">${maven.repo.remote}</j:set> > + <util:tokenize var="repos" > delim=",">${repoList.trim()}</util:tokenize> > + <j:forEach var="repo" items="${repos}"> > + <echo>repo is '${repo}'</echo> > + <j:set var="remoteFile" > value="${repo}/${groupId}/src/${artifactId}-${version}.zip" /> > + <echo>trying to download ${remoteFile}</echo> > + <j:catch var="ex"> > + <j:invokeStatic var="dummy" method="getFile" > className="org.apache.maven.util.HttpUtils"> > + <j:arg type="java.lang.String" > value="${remoteFile}" /> > + <j:arg type="java.io.File" value="${localSrcFile}"/> > + <j:arg type="boolean" value="false"/> > + <j:arg type="boolean" value="true"/> > + <j:arg type="java.lang.String" > value="${maven.proxy.host}" /> > + <j:arg type="java.lang.String" > value="${maven.proxy.port}" /> > + <j:arg type="java.lang.String" > value="${maven.proxy.username}" /> > + <j:arg type="java.lang.String" > value="${maven.proxy.password}" /> > + <j:arg type="boolean" value="false"/> > + </j:invokeStatic> > + </j:catch> > + <j:remove var="remoteFile"/> > + <j:break test="${localSrcFile.exists()}"/> > + </j:forEach> > + <j:if test="${!localSrcFile.exists()}"> > + <echo>WARN: Could not download sources for > ${groupId}:${artifactId} ver.${version}</echo> > + </j:if> > + <j:remove var="repoList"/> > + </j:if> > + <j:remove var="localSrcFile"/> > + </goal> > + > > </project> -- This message is automatically generated by JIRA. - If you think it was sent incorrectly contact one of the administrators: http://jira.codehaus.org/secure/Administrators.jspa - For more information on JIRA, see: http://www.atlassian.com/software/jira --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]