Message: The following issue has been closed.
Resolver: dion gillard Date: Thu, 25 Sep 2003 1:59 AM Implemented ages ago. Method is in o.a.m.project.Dependency. --------------------------------------------------------------------- View the issue: http://jira.codehaus.org/secure/ViewIssue.jspa?key=MAVEN-197 Here is an overview of the issue: --------------------------------------------------------------------- Key: MAVEN-197 Summary: Artifact type handling - there is no way no add artifact of other type than jar to build classpath Type: Bug Status: Closed Priority: Major Resolution: FIXED Time Spent: Unknown Remaining: Unknown Project: maven Fix Fors: 1.0-rc1 Versions: 1.0-beta-8 Assignee: Reporter: Michal Maczka Created: Sun, 12 Jan 2003 12:06 PM Updated: Thu, 25 Sep 2003 1:59 AM Description: Currently Maven adds to build class path only dependencies which type is "jar". There are dependencies of other type than jar (e.g. ejb modules) which also contain java class files. Solution: A Simple solution yet compatible with current code and additionally supporting adding to build class path dependencies of type "ejb" can look like follows: 1. add to artifact information if artifact should be added to build class path (e.g. new property addToClasspath). This information will be set by ArtifactFactory. More advanced implementation ArtifactFactory (e.g. configurable through config file) should be smart enough to set this property correctly basing on dependency type public boolean addToClasspath() { return (getType().equals("jar") || getType().equals("ejb")); } 2. In class org.apache.maven.DependencyClasspathBuilder This property of artifact can be than used in following way. /** * Create the dependency classpath. * * @throws Exception If an error occurs while creating the classpath. */ public static String build( Project project ) throws Exception { //Path classpath = new Path( getProject().getRootContext().getAntProject() ); StringBuffer classpath = new StringBuffer(); for ( Iterator i = project.getArtifacts().iterator(); i.hasNext(); ) { Artifact artifact = (Artifact) i.next(); Dependency d = artifact.getDependency(); if () // Only add jar dependencies to the classpath if ( artifact.addToClasspath()==false) { continue; } classpath.append( artifact.getPath() ).append( cps ); project.setDependencyPath( d.getId(), artifact.getPath() ); } This is still dirty, but marks the path for future refactoring and centralized the source of problem (only addToClasspath property in Artifact will/should contain appropriate information) --------------------------------------------------------------------- JIRA INFORMATION: 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 If you want more information on JIRA, or have a bug to report see: http://www.atlassian.com/software/jira --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]