[ https://jira.codehaus.org/browse/MECLIPSE-746?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=331953#comment-331953 ]
Jean-François Lecomte commented on MECLIPSE-746: ------------------------------------------------ Analysing the code of the eclipse:eclipse plugin, I see the following method: {code:title=IdeDependency.java|borderStyle=solid} /** * @return <tt>true</tt> if this dependency is a Java API */ public boolean isJavaApi() { return groupId.startsWith( "java." ) || groupId.startsWith( "javax." ); } {code} in the class IdeDependency. It is being called in the class EclipseClasspathWriter with the following code: {code:title=EclipseClasspathWriter.java|borderStyle=solid} // ---------------------------------------------------------------------- // Java API dependencies that may complete the classpath container must // be declared BEFORE all other dependencies so that container access rules don't fail // ---------------------------------------------------------------------- IdeDependency[] depsToWrite = config.getDeps(); for ( int j = 0; j < depsToWrite.length; j++ ) { IdeDependency dep = depsToWrite[j]; if ( dep.isJavaApi() ) { String depId = getDependencyId( dep ); if ( !addedDependencies.contains( depId ) ) { addDependency( writer, dep ); addedDependencies.add( depId ); } } } {code} Maybe the isJavaApi() should validate that the type is "jar"? > Non-Jar type dependency generates invalid entry in .classpath file > ------------------------------------------------------------------ > > Key: MECLIPSE-746 > URL: https://jira.codehaus.org/browse/MECLIPSE-746 > Project: Maven Eclipse Plugin > Issue Type: Bug > Affects Versions: 2.9 > Reporter: Jean-François Lecomte > Priority: Minor > > Not sure if it is a good practice, but when a JAR requires a DLL at runtime, > I add it in the maven repo. It usually works fine, I use the dependency > plugin to copy the dll in my working directory and when I generate my eclipse > project, they are not included in the classpath... except for one case: the > javax.comm's dll. > I refer to my DLL like this: > {code:xml} > <dependency> > <groupId>javax.comm</groupId> > <artifactId>win32com</artifactId> > <version>3.0-u1</version> > <type>dll</type> > <scope>runtime</scope> > </dependency> > {code} > When I generate the eclipse project using the command: > {noformat} > mvn eclipse:eclipse > {noformat} > the generated .classpath file contains: > {code:xml} > <classpathentry kind="var" > path="M2_REPO/javax/comm/win32com/3.0-u1/win32com-3.0-u1.dll"/> > {code} > When loading the project in Eclipse, I get the following error: > "Archive for required library: > '.m2/repository/javax/comm/win32com/3.0-u1/win32com-3.0-u1.dll' in project > '...' cannot be read or is not a valid ZIP file" -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira