Hi Curtis, I'll take a look at that, thanks! Ideally, I'll eventually be able to have an internal Maven repository so that I can do everything right. What I had been trying to do in the meantime is having it set up so that when we set up a new development station, the user can simply clone the Github repo that has these dependency projects and just do 'mvn install' on each one, then build or develop the standalone app(s). Kinda crude I know, but we're basically just starting a software development department, so have to work with what's available in the short-term. If it doesn't work, I can just keep a batch script with the jar that runs the mvn:install I suppose.
Yup Paul, that's exactly what was happening. The jar file deployed into a local repo within the project directory, and put a reference pom file up in the .m2 directory. But as soon as I ran 'mvn install', it built an empty jar file and put that up in the .m2 instead. I just wanted to try to have it in a separate project so that from the user's perspective, it would be as close as possible to what the process would be if we had an actual internal maven repo. Thanks for the suggestions everyone! Matt On May 30, 2014 at 4:49 PM Curtis Rueden <ctrue...@wisc.edu> wrote: > Hi Matt, > > Have you seen this article? > http://developer-blog.cloudbees.com/2013/03/playing-trade-offs-with-maven.html > > If you cannot deploy the Microsoft JARs to your own internal Maven > repository, then you could try the non-maven-jar-plugin approach. It is > strongly recommended over the "basedir repository hack" approach that you > are using (presumably from > https://devcenter.heroku.com/articles/local-maven-dependencies). > > Regards, > Curtis > > > On Fri, May 30, 2014 at 3:42 PM, Matt Whiteman <mwhite...@purelandsupply.com > > wrote: > > > Hi, > > > > > > > > This has probably been answered before, but I haven't been able to find the > > answer and I'm hoping someone knows. > > > > > > > > I'm writing several apps that talk to a Microsoft SQL database, so I'm > > using > > the Hibernate dependency. Since Microsoft doesn't make the sqljdbc4 jar > > available on Maven, I've downloaded it, and I'm trying to make it an > > unmanaged dependency in its own standalone project so that I can simply > > reference it in other projects' pom files without having to deploy the jar > > to each one individually. > > > > > > > > I've followed the instructions for deploying an unmanaged dependency. As I > > am the only developer at my company (at this time), I do not have a > > separate > > Maven server setup. I was hoping to simply deploy the dependency and then > > run 'maven install' so that it copies everything needed into my .m2 folder. > > This is my directory setup: > > > > > > > > (This is the project directory for the sqljdbc4 unmanaged dependency) > > > > C:\dev\Github-repos\addons\sqljdbc4 > > > > +- pom.xml > > > > +-src > > > > +-repo > > > > > > > > I followed the instructions to use mvn deploy on the local sqljdbc4.jar > > file. I am using an artifactId of sqljdbc4, version 4.0, groupId of > > com.microsoft.sqlserver. After deployment, the repo directory does appear > > to > > be correctly populated: > > > > > > > > C:\dev\Github-repos\addons\sqljdbc4 > > > > +- pom.xml > > > > +-src > > > > +-repo > > > > +-com > > > > +-microsoft > > > > +-sqlserver > > > > +-sqljdbc4 > > > > +-maven-metadata > > > > +-4.0 > > > > +-sqljdbc4-4.0.jar > > > > +-sqljdbc4-4.0.pom > > > > > > > > Next, following the instructions, I go back into the pom.xml file and add > > the repository tag, so my pom.xml for this now looks like: > > > > > > > > <project xmlns="http://maven.apache.org/POM/4.0.0" > > xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" > > xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 > > http://maven.apache.org/xsd/maven-4.0.0.xsd > > < > > http://maven.apache.org/POM/4.0.0%20http:/maven.apache.org/xsd/maven-4.0.0 > > . > > xsd> "> > > > > <modelVersion>4.0.0</modelVersion> > > > > <groupId>com.microsoft.sqlserver</groupId> > > > > <artifactId>sqljdbc4</artifactId> > > > > <version>4.0</version> > > > > > > > > <repositories> > > > > <!--other repositories if any--> > > > > <repository> > > > > <id>project.local</id> > > > > <name>project</name> > > > > <url>file:${project.basedir}/repo</url> > > > > </repository> > > > > </repositories> > > > > </project> > > > > > > > > > > > > Now, here is the problem. Since I want to use this as a dependency in other > > projects, I am trying to run 'maven install' so that it will push > > everything > > into my .m2 directory. The maven build is a success. However, the resulting > > sqljdbc4.jar file in the target directory and up in the m2 directory is > > only > > 2kb (whereas the original jar file is 571kb, none of the content made it > > in). As a result, projects that use this as a dependency build, but then > > throw a ClassNotFoundException at runtime, because the classes aren't > > there. > > > > > > > > I am building a separate project that uses this as a dependency: > > > > > > > > C:\dev\Github-repos\applications\myapp > > > > > > > > The pom.xml for this project uses the dependency correctly: > > > > <dependency> > > > > <groupId>com.microsoft.sqlserver</groupId> > > > > <artifactId>sqljdbc4</artifactId> > > > > <version>4.0</version> > > > > </dependency> > > > > > > > > I'm even using the maven assembly plugin to ensure a jar is built with all > > dependencies packaged in: > > > > > > > > <plugin> > > > > > > <artifactId>maven-assembly-plugin</artifactId> > > > > <configuration> > > > > <descriptorRefs> > > > > > > <descriptorRef>jar-with-dependencies</descriptorRef> > > > > </descriptorRefs> > > > > <archive> > > > > <manifest> > > > > <addClasspath>true</addClasspath> > > > > > > <mainClass>productfeeds.main.ProductFeedDriver</mainClass> > > > > </manifest> > > > > </archive> > > > > </configuration> > > > > <executions> > > > > <execution> > > > > <phase>package</phase> > > > > <goals> > > > > <goal>single</goal> > > > > </goals> > > > > </execution> > > > > </executions> > > > > </plugin> > > > > > > > > > > > > Any ideas what I'm doing wrong? I'm sure it's something really simple I've > > overlooked. If I don't make this a standalone dependency, and simply use > > 'mvn install:install-file -Dfile=sqljdbc4.jar > > -DgroupId=com.microsoft.sqlserver -DartifactId=sqljdbc4 -Dversion=4.0 > > -Dpackaging=jar ', then everything works fine. > > > > > > > > Thanks, > > > > > > > > Matt > > > > > > > >