I understand but you can't achieve this using a project to represent a
pre-existing jar. Your attempt won't work. The "install-file" command is
the correct solution; that is how you get it into your local repo without
downloading it from a remote repo.
On May 30, 2014 4:36 PM, "Matt Whiteman" <mwhite...@purelandsupply.com>
wrote:

> 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
> > >
> > >
> > >
> > >

Reply via email to