Ignore:
Timestamp:
02/21/11 15:23:26 (9 years ago)
Author:
curtis
Message:

Add all dependencies to the library path.

This is not a longterm solution, because we want Jar2Lib to wrap only
the project JAR itself, not all dependent JARs. Rather, we just want
the dependencies on the classpath as well.

File:
1 edited

Legend:

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

    r7626 r7627  
    4343import loci.jar2lib.VelocityException; 
    4444 
     45import org.apache.maven.artifact.Artifact; 
    4546import org.apache.maven.plugin.AbstractMojo; 
    4647import org.apache.maven.plugin.MojoExecutionException; 
     
    4950/** 
    5051 * Goal which creates a C++ project wrapping a Maven Java project. 
     52 * 
     53 * Portions of this mojo we adapted from the exec-maven-plugin's ExecJavaMojo, 
    5154 * 
    5255 * @author Curtis Rueden 
     
    9295        @Override 
    9396        public void execute() throws MojoExecutionException { 
    94                 getLog().info("Hello, world."); 
    95                 getLog().info("conflictsFile = " + conflictsFile); 
    96                 getLog().info("headerFile = " + headerFile); 
    97                 getLog().info("project = " + project); 
    98                 getLog().info("dependencies:"); 
    99                 final List<?> list = project.getDependencies(); 
    100                 for (Object item : list) { 
    101                         getLog().info("\t" + item); 
    102                 } 
     97                final String artifactId = project.getArtifactId(); 
    10398 
    104                 final String projectId = 
    105                         project.getArtifactId().replaceAll("[^\\w\\-]", "_"); 
     99                final String projectId = artifactId.replaceAll("[^\\w\\-]", "_"); 
    106100                final String projectName = project.getName(); 
    107                 final List<String> jarPaths = new ArrayList<String>(); 
    108                 jarPaths.add(project.getArtifact().getFile().getPath()); 
     101                final List<String> libraryPaths = getLibraryPaths(); 
    109102                final String conflictsPath = conflictsFile.exists() ? 
    110103                        conflictsFile.getPath() : null; 
     
    121114                jar2lib.setProjectId(projectId); 
    122115                jar2lib.setProjectName(projectName); 
    123                 jar2lib.setLibraryPaths(jarPaths); 
     116                jar2lib.setLibraryPaths(libraryPaths); 
    124117                jar2lib.setConflictsPath(conflictsPath); 
    125118                jar2lib.setHeaderPath(headerPath); 
     
    136129        } 
    137130 
     131        private List<String> getLibraryPaths() throws MojoExecutionException { 
     132                final List<String> libraryPaths = new ArrayList<String>(); 
     133 
     134                // add project artifact 
     135                final File projectArtifact = project.getArtifact().getFile(); 
     136                if (projectArtifact == null || !projectArtifact.exists()) { 
     137                        throw new MojoExecutionException("Must execute package target first."); 
     138                } 
     139                libraryPaths.add(projectArtifact.getPath()); 
     140 
     141                // add project runtime dependencies 
     142                final List<Artifact> artifacts = project.getRuntimeArtifacts(); 
     143                for (final Artifact classPathElement : artifacts) { 
     144                        libraryPaths.add(classPathElement.getFile().getPath()); 
     145                } 
     146 
     147                return libraryPaths; 
     148        } 
     149 
    138150} 
Note: See TracChangeset for help on using the changeset viewer.