2018/02/02 更新
mvnrepository.com已经提供了ms jdbc 的jar
URL: http://mvnrepository.com/artifact/com.microsoft.sqlserver/mssql-jdbc
pom.xml中引用
<!-- https://mvnrepository.com/artifact/com.microsoft.sqlserver/mssql-jdbc -->
<dependency>
<groupId>com.microsoft.sqlserver</groupId>
<artifactId>mssql-jdbc</artifactId>
<version>6.2.2.jre8</version>
<scope>test</scope>
</dependency>
==================================================================================================
0.spring boot工程需要访问mssql server 2016,在MS的官网上下载的 mssql-jdbc-6.2.2.jre8.jar.在eclipse中使用clean package打包,打包后的war中少mssql-jdbc-6.2.2.jre8.jar, google后,最终解决问题
(google了n多网页,在google的过程中有很多都是一样的, 或是解决不了问题的)
1.添加mssql-jdbc-6.2.2.jre8.jar到pom.xml.其中lib文件夹和src是同级目录,mssql-jdbc-6.2.2.jre8.jar放到lib文件夹中
<dependency>
<groupId>com.microsoft</groupId>
<artifactId>mssql-jdbc</artifactId>
<version>6.2.2.jre8</version>
<scope>system</scope>
<systemPath>${project.basedir}/lib/mssql-jdbc-6.2.2.jre8.jar</systemPath>
</dependency>
2.修改pom.xml的<build></build>,其中红色字体部分是添加的.
使用了两个 <resource> </resource>,第一个是为了复制src/main/resources下的*.properties和static,templates两个文件夹及文件夹下的文件
第二个是为了把第三方的jar放到WEB-INF/lib文件夹下,我的工程里只有一个jar,如果有多个也会一起放到WEB-INF/lib文件夹下
这时在eclipse中使用maven的clean package打包就会生成正确的war包
<build>
<finalName>XXX</finalName>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<fork>true</fork>
</configuration>
</plugin>
</plugins>
<resources>
<resource>
<directory>src/main/resources</directory>
<targetPath>../classes/</targetPath>
<includes>
<include>**/*.*</include>
</includes>
</resource>
<resource>
<directory>lib</directory>
<targetPath>../与工程同名的文件夹/WEB-INF/lib/</targetPath>
<includes>
<include>**/*.jar</include>
</includes>
</resource>
</resources>
</build>
3.在google时看到有文章说spring boot官方推荐把第三方jar用命令放到maven的本地库或私服中,我为什么没有使用这种方式呢
原因有两个:
原因1: 当把源代码交付给最终客户时,客户不一定有私服,
原因2: 客户不愿意执行一长串的命令把第三方的jar放到本库.再说在团队一起开发时还要让大家都要把jar install到本地库中?肯定多数人都会觉得麻烦,
所以最后使用了上面的解决方法,把没有问题的工程放在SVN上大家checkout,直接写代码就OK
4.拿去,不谢