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