Ignore:
Timestamp:
02/21/11 22:07:28 (9 years ago)
Author:
curtis
Message:

Add separate settings for library vs. classpath JARs.

Library JARs are scanned, and their classes wrapped as C++ proxies,
whereas classpath JARs are added to the classpath but not wrapped.

With these changes, cppwrap can now successfully wrap projects with
dependencies.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/projects/cppwrap-maven-plugin/src/main/java/loci/maven/plugin/cppwrap/CppWrapMojo.java

    r7627 r7629  
    8181         * 
    8282         * @parameter expression="${cppwrap.headerFile}" 
    83          *   default-value="src/main/cppwrap/header.txt" 
     83         *   default-value="LICENSE.txt" 
    8484         */ 
    8585        private File headerFile; 
     
    9999                final String projectId = artifactId.replaceAll("[^\\w\\-]", "_"); 
    100100                final String projectName = project.getName(); 
    101                 final List<String> libraryPaths = getLibraryPaths(); 
     101                final List<String> libraryJars = getLibraryJars(); 
     102                final List<String> classpathJars = getClasspathJars(); 
    102103                final String conflictsPath = conflictsFile.exists() ? 
    103104                        conflictsFile.getPath() : null; 
     
    114115                jar2lib.setProjectId(projectId); 
    115116                jar2lib.setProjectName(projectName); 
    116                 jar2lib.setLibraryPaths(libraryPaths); 
     117                jar2lib.setLibraryJars(libraryJars); 
     118                jar2lib.setClasspathJars(classpathJars); 
    117119                jar2lib.setConflictsPath(conflictsPath); 
    118120                jar2lib.setHeaderPath(headerPath); 
     
    129131        } 
    130132 
    131         private List<String> getLibraryPaths() throws MojoExecutionException { 
    132                 final List<String> libraryPaths = new ArrayList<String>(); 
     133        private List<String> getLibraryJars() throws MojoExecutionException { 
     134                final List<String> jars = new ArrayList<String>(); 
    133135 
    134136                // add project artifact 
     
    137139                        throw new MojoExecutionException("Must execute package target first."); 
    138140                } 
    139                 libraryPaths.add(projectArtifact.getPath()); 
     141                jars.add(projectArtifact.getPath()); 
     142 
     143                return jars; 
     144        } 
     145 
     146        private List<String> getClasspathJars() { 
     147                final List<String> jars = new ArrayList<String>(); 
    140148 
    141149                // add project runtime dependencies 
    142150                final List<Artifact> artifacts = project.getRuntimeArtifacts(); 
    143151                for (final Artifact classPathElement : artifacts) { 
    144                         libraryPaths.add(classPathElement.getFile().getPath()); 
     152                        jars.add(classPathElement.getFile().getPath()); 
    145153                } 
    146154 
    147                 return libraryPaths; 
     155                return jars; 
    148156        } 
    149157 
Note: See TracChangeset for help on using the changeset viewer.