[ http://jira.codehaus.org/browse/MPECLIPSE-60?page=comments#action_38719 ]
Milos Kleint commented on MPECLIPSE-60:
---------------------------------------
I've added an enhancement to maven-dist-plugin for creation and upload of
source file distributions that are similar to javadoc distributions - MPDIST-21.
it allows to upload the source artifact to
repository/${groupId}/src.jars/${artifactid}-{$version}.src.jar which is
consistent with the javadoc plugin.
It allows me to check for the src jar in mevenide and download it if it exists.
The repository/${groupId}/src/<name>.zip location seems lessconsistent and
doesn't have a countepart on the upload side.
I don't think a dependency property is necessary, this can be trasparently
checked for *any* dependency. Once we have a standard location and format of
the source artifact.
> 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
> Fix For: 1.9
> 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]