Thanks very much K.C Hey you aren't related to 1970's "The Sunshine Band", are you? |-D
# Cheers again -- Peter Pilgrim Organiser / Founder ( JAVAWUG http://developers.sun.com/jugs/display/europe/gbr/london ) ( ( ( ( ( ( )\ ( ( )\ )\))( ' ( )\ ) )((((_)( )\ )((((_)( ((_)()\ ) )\(()/( ((_)\ _ )\((_)((_)\ _ )\_(())\_)()_ ((_)/(_))_ _ | (_)_\(_) \ / /(_)_\(_) \((_)/ / | | (_)) __| | || |/ _ \ \ V / / _ \ \ \/\/ /| |_| | | (_ | \__//_/ \_\ \_/ /_/ \_\ \_/\_/ \___/ \___| ================================================= > -----Original Message----- > From: KC Baltz [mailto:[EMAIL PROTECTED] > Sent: 01 November 2005 19:23 > To: Maven Users List > Subject: RE: Installing Commercial Jars and missing POM XML files > > > Peter, > > Your MvnCreateLocalPom works well, but I think it needed a > small fix and an enhancement. > > You have two places in dumpPom(String, String) where groupId > is used to create a path. I appended .replace('.', '/') to > the groupId to handle dotted groups. > > Also, when you actually create the pom, you were doing > artifact.version.pom, when I think it's supposed to be > artifact-version.pom (note the dash). > > My modified version is pasted below. > > K.C. > > import java.io.*; > > /** > * Create missing POM XML descriptions for maven repository > * elements > * > * > * @author Peter Pilgrim, Oct 24, 2005 2:43:57 PM > * @version $Id$ > */ > public class MvnCreateLocalPom { > > private static String repositoryPath = > System.getProperty("user.home")+"/.m2/repository"; > > /** > * Default constructor > */ > public MvnCreateLocalPom() { > super(); > } > > /** > * Write the POM to standard output > * @param groupId the group name > * > * @see #dumpPom(String, String) > */ > public void dumpPom( String groupId ) throws IOException > { > File groupDir = new File( repositoryPath +"/" +groupId ); > if ( !groupDir.exists() ) > throw new FileNotFoundException( > "no such group directory = "+groupDir ); > > File contents[] = groupDir.listFiles(); > for ( int j=0; j<contents.length; ++j ) { > String oneFile = contents[j].getName(); > if ( oneFile.equals(".") || > oneFile.equals("..") ) > continue; > > // System.out.println( oneFile+" file "+( > contents[j].exists() ? "exists" : "not file")); > dumpPom( groupId, oneFile ); > > } > } > > /** > * Write the POM to standard output > * @param groupId the group name > * @param artifactId the artifact name > */ > public void dumpPom( String groupId, String artifactId ) > throws IOException > { > File groupArtifactDir = new File( > repositoryPath +"/" +groupId.replace('.', > '/')+"/"+artifactId ); > > if ( !groupArtifactDir.exists() ) > throw new FileNotFoundException( > "no such group artifact directory = > "+groupArtifactDir ); > File contents[] = groupArtifactDir.listFiles(); > for ( int j=0; j<contents.length; ++j ) { > String oneFile = contents[j].getName(); > if ( oneFile.equals(".") || > oneFile.equals("..") ) > continue; > > // System.out.println( oneFile+" file "+( > contents[j].exists() ? "exists" : "not file")); > if ( contents[j].isDirectory() && > !oneFile.equals("maven-metadata-local.xml") ) { > // We could have a better stringent test here. > File outputFile = new File( > repositoryPath +"/" > +groupId.replace('.', '/')+"/"+artifactId +"/"+ oneFile+"/"+ > artifactId+"-"+oneFile+".pom" ); > > // Here oneFile should be version identifier number! > FileWriter fwriter = new FileWriter( outputFile ); > PrintWriter pwriter = new PrintWriter( fwriter ); > pwriter.println("<project>"); > pwriter.println(" > <modelVersion>4.0.0</modelVersion>"); > pwriter.println(" <groupId>"+groupId+"</groupId>"); > pwriter.println(" > <artifactId>"+artifactId+"</artifactId>"); > pwriter.println(" <version>"+oneFile+"</version>"); > pwriter.println("</project>"); > pwriter.close(); > } > } > } > > > public static void main( String args[] ) > { > MvnCreateLocalPom pommer = new MvnCreateLocalPom(); > try { > // pommer.dumpPom( "com.sun.jsfcl", "jsfcl"); > pommer.dumpPom( "com.sun.data", "dataprovider"); > pommer.dumpPom( "javax.faces", "jsf-impl"); > pommer.dumpPom( "com.sun.web", "defaulttheme"); > // pommer.dumpPom( "expresso"); > // pommer.dumpPom( "bea-weblogic", "weblogic"); > } > catch (Exception ex) { > ex.printStackTrace( System.err ); > } > } > } > > -----Original Message----- > From: Pilgrim, Peter [mailto:[EMAIL PROTECTED] > Sent: Monday, October 24, 2005 7:35 AM > To: 'Maven Users List' > Subject: RE: Installing Commercial Jars and missing POM XML files > > > > -----Original Message----- > > From: Wendy Smoak [mailto:[EMAIL PROTECTED] > ==////== > > > > From: "Pilgrim, Peter" <[EMAIL PROTECTED]> > > > > > My question is, how do I tell maven not to going looking remotely > > > for POM XML files for the commercial jars since I installed > > > them locally on my machine? > > > > http://www.mail-archive.com/users%40maven.apache.org/msg26066.html > > > > I've just been creating a pom for them with just the > > group/artifact/version > > and Maven stops complaining. > > > > Should we submit poms for these non-distributable commercial > > libraries, so > > that they're in the repository like the ones for Sun .jars > > (and we can come > > to some agreement on the group/artifact ids?) > ==////== > > I just created a program to create the local POMs for me in the > m2 repository. But when I run it, and manually rename AUTO-pom to > .pom file, and then re-run ``mvn''. > > Guess what? Maven still complains about remote repository. So it > cannot possibly that the ``**/*.pom'' does not exist in the right > place. I created it, so therefore maven should shut the ++++ up(!). > > import java.io.*; > > /** > * Create missing POM XML descriptions for maven repository > * elements > * > * > * @author Peter Pilgrim, Oct 24, 2005 2:43:57 PM > * @version $Id$ > */ > public class MvnCreateLocalPom { > > private static String repositoryPath = > System.getProperty("user.home")+"/.m2/repository"; > > /** > * Default constructor > */ > public MvnCreateLocalPom() { > super(); > } > > /** > * Write the POM to standard output > * @param groupId the group name > * > * @see #dumpPom(String, String) > */ > public void dumpPom( String groupId ) throws IOException > { > File groupDir = new File( repositoryPath +"/" +groupId ); > if ( !groupDir.exists() ) > throw new FileNotFoundException( > "no such group directory = "+groupDir ); > > File contents[] = groupDir.listFiles(); > for ( int j=0; j<contents.length; ++j ) { > String oneFile = contents[j].getName(); > if ( oneFile.equals(".") || > oneFile.equals("..") ) > continue; > > // System.out.println( oneFile+" file "+( > contents[j].exists() ? "exists" : "not file")); > dumpPom( groupId, oneFile ); > > } > } > > /** > * Write the POM to standard output > * @param groupId the group name > * @param artifactId the artifact name > */ > public void dumpPom( String groupId, String artifactId ) > throws IOException > { > File groupArtifactDir = new File( > repositoryPath +"/" +groupId+"/"+artifactId ); > > if ( !groupArtifactDir.exists() ) > throw new FileNotFoundException( > "no such group artifact directory = > "+groupArtifactDir ); > File contents[] = groupArtifactDir.listFiles(); > for ( int j=0; j<contents.length; ++j ) { > String oneFile = contents[j].getName(); > if ( oneFile.equals(".") || > oneFile.equals("..") ) > continue; > > // System.out.println( oneFile+" file "+( > contents[j].exists() ? "exists" : "not file")); > if ( contents[j].isDirectory() && > !oneFile.equals("maven-metadata-local.xml") ) { > // We could have a better stringent test here. > File outputFile = new File( > repositoryPath +"/" > +groupId+"/"+artifactId +"/"+ oneFile+"/"+ > artifactId+"."+oneFile+".AUTO-pom" ); > > // Here oneFile should be version identifier number! > FileWriter fwriter = new FileWriter( outputFile ); > PrintWriter pwriter = new PrintWriter( fwriter ); > pwriter.println("<project>"); > pwriter.println(" > <modelVersion>4.0.0</modelVersion>"); > pwriter.println(" <groupId>"+groupId+"</groupId>"); > pwriter.println(" > <artifactId>"+artifactId+"</artifactId>"); > pwriter.println(" <version>"+oneFile+"</version>"); > pwriter.println("</project>"); > pwriter.close(); > } > } > } > > > public static void main( String args[] ) > { > MvnCreateLocalPom pommer = new MvnCreateLocalPom(); > try { > pommer.dumpPom( "commons-beanutils", "commons-beanutils"); > pommer.dumpPom( "expresso"); > pommer.dumpPom( "bea-weblogic", "weblogic"); > } > catch (Exception ex) { > ex.printStackTrace( System.err ); > } > } > } > > -- > Peter Pilgrim :: J2EE Software Development > Operations/IT - Credit Suisse First Boston, > Floor 15, 5 Canada Square, London E14 4QJ, United Kingdom > Tel: +44-(0)207-883-4497 > > > > ============================================================== > ================ > Please access the attached hyperlink for an important > electronic communications disclaimer: > > http://www.csfb.com/legal_terms/disclaimer_external_email.shtml > > ============================================================== > ================ > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > > ============================================================================== Please access the attached hyperlink for an important electronic communications disclaimer: http://www.csfb.com/legal_terms/disclaimer_external_email.shtml ============================================================================== --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
