아티팩트 com.microsoft.sqlserver:sqljdbc4:jar:4.0 누락
POM.xml 파일에 MS SQL 드라이버 의존성을 추가하려고 하는데, 그 의존성은 다음과 같습니다.
<dependency>
<groupId>com.microsoft.sqlserver</groupId>
<artifactId>sqljdbc4</artifactId>
<version>4.0</version>
</dependency>
하지만 나는 이 예외가 있다.
아티팩트 com.microsoft.sqlserver:sqljdbc4:jar:4.0 누락
나는 그 문제를 정말 이해할 수 없다.
갱신하다
Microsoft는 현재 이 아티팩트를 maven central에서 제공하고 있습니다.상세한 것에 대하여는, @http://https://stackoverflow.com/a/41149866/1570834 를 참조해 주세요.
원래의 회답
문제는 Maven이 구성된 모든 maven 저장소에서 이 아티팩트를 찾을 수 없다는 것입니다.
유감스럽게도 Microsoft는 이 아티팩트를 maven 저장소를 통해 사용할 수 없습니다.Microsoft 웹 사이트에서 jar를 다운로드한 후 로컬 maven 저장소에 수동으로 설치해야 합니다.
이를 수행하려면 다음 maven 명령을 사용합니다.
mvn install:install-file -Dfile=sqljdbc4.jar -DgroupId=com.microsoft.sqlserver -DartifactId=sqljdbc4 -Dversion=4.0 -Dpackaging=jar
다음 번에 POM에서 maven을 실행하면 아티팩트가 발견됩니다.
Microsoft는 최근 jdbc 드라이버를 오픈 소스했습니다.
이제 maven central에서 드라이버를 찾을 수 있습니다.
<!-- https://mvnrepository.com/artifact/com.microsoft.sqlserver/mssql-jdbc -->
<dependency>
<groupId>com.microsoft.sqlserver</groupId>
<artifactId>mssql-jdbc</artifactId>
<version>6.1.0.jre8</version>
</dependency>
또는 Java 7의 경우:
<!-- https://mvnrepository.com/artifact/com.microsoft.sqlserver/mssql-jdbc -->
<dependency>
<groupId>com.microsoft.sqlserver</groupId>
<artifactId>mssql-jdbc</artifactId>
<version>6.1.0.jre7</version>
</dependency>
저도 비슷한 문제가 있어서 다음 방법으로 해결했습니다.
- Microsoft 의 sqljdbc4.jar 의 sqljdbc4.jar.
- [프로젝트]> [ Import ]> [ Maven ]-> [ Architect ]-> [건축가]- [건축가]- [건축가]- [건축가]- [건축가]- [건축가]- [건축가]
그 다음 --에 기입해 * -->다음에 기입해 주세요.
Artifact file: 받은)
Group Id:.sqlservercom.disc.sqlserver
Artifact Id:sqljdbc4
Version: 4.0

- 그런 다음 프로젝트를 새로 고침/청소합니다.
★★★★★★★★★★★★★★★★★★!
프로젝트 저장소를 생성할 수도 있습니다.같은 프로젝트에 더 많은 개발자가 참여하고 있고 라이브러리에 프로젝트를 포함해야 하는 경우에 유용합니다.
먼저 프로젝트의 lib 디렉터리에 저장소 구조를 만든 다음 라이브러리를 여기에 복사합니다.에는 다음과 같은 형식이 합니다.
<artifactId>-<version>.jar<your_project_dir>/lib/com/microsoft/sqlserver/<artifactId>/<version>/라이브러리 파일 옆에 pom 파일을 만들고 다음 정보를 입력합니다.
<?xml version="1.0" encoding="UTF-8"?> <project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <modelVersion>4.2.0</modelVersion> <groupId>com.microsoft.sqlserver</groupId> <artifactId>sqljdbc4</artifactId> <version>4.2</version> </project>이 시점에서, 다음의 디렉토리 구조가 필요합니다.
<your_project_dir>/lib/com/microsoft/sqlserver/sqljdbc4/4.2/sqljdbc4-4.2.jar<your_project_dir>/lib/com/microsoft/sqlserver/sqljdbc4/4.2/sqljdbc4-4.2.pom프로젝트의 POM 파일로 이동하여 새 저장소를 추가합니다.
<repositories> <repository> <id>Project repository</id> <url>file://${basedir}/lib</url> </repository> </repositories>마지막으로 라이브러리에 종속성을 추가합니다.
<dependencies> <dependency> <groupId>com.microsoft.sqlserver</groupId> <artifactId>sqljdbc4</artifactId> <version>4.2</version> </dependency> </dependencies>
2017-03-04 업데이트
라이브러리는 공개 저장소에서 얻을 수 있는 것 같습니다.@자세한 내용은 nirmals와 Jacek Grzelaczyk의 답변을 참조하십시오.
업데이트 2020-11-04
한 타겟을 있습니다.installPOM 파일을 수동으로 작성할 필요 없이 기존 패키지를 프로젝트/파일 저장소에 도입할 수 있습니다.을 사용하다
mvn install:install-file \
-Dfile=sqljdbc4.jar \
-DgroupId=com.microsoft.sqlserver \
-DartifactId=sqljdbc4 \
-Dversion=4.2 \
-Dpackaging=jar \
-DlocalRepositoryPath=${your_project_dir}/lib
위의 답변에서는 sqljdbc4.jar만 로컬저장소에 추가합니다.그 결과 배포용 최종 프로젝트 jar를 작성할 때 @Tony의 런타임 오류에 대한 코멘트에 나타난 바와 같이 sqljdbc4가 다시 누락됩니다.
Microsoft(및 Oracle 및 기타 서드파티 프로바이더)는 ENU/EULA에 따라 소프트웨어 배포를 제한합니다.따라서 이러한 소프트웨어 모듈은 Maven이 배포용으로 생산한 항아리에는 추가되지 않습니다.(실행시에 서드파티 jar 파일의 위치를 제공하는 등) 회피하기 위한 해킹이 있지만 개발자로서 라이선스를 위반하는 것에 주의해야 합니다.
jdbc 커넥터/드라이버에 대한 보다 나은 접근법은 대부분의 DBMS와 호환되며 신뢰성이 높고 속도가 빠르며 GNU 라이선스로 배포되는 jTDS를 사용하는 것입니다.위의 기술 중 하나를 따라 둥근 구멍에 사각 못을 박는 것보다 이것을 사용하는 것이 훨씬 더 쉬워질 것이다.
덧붙이기만 하면 된다
<dependency>
<groupId>com.microsoft.sqlserver</groupId>
<artifactId>sqljdbc4</artifactId>
<version>4.0</version>
<scope>runtime</scope>
</dependency>
Maven 프로젝트의 경우 일반적으로 모든 외부 jar 종속성을 프로젝트의 저장소에 설치합니다.SQL Server JDBC 드라이버의 경우 다음을 수행할 수 있습니다.
- https://www.microsoft.com/en-us/download/confirmation.aspx?id=11774 에서 JDBC 드라이버를 다운로드합니다.
- 를
local-repoMaven in in in in in in in in in in in - 복사
sqljdbc42.jarlocal-repo표시 local-reporun " " " "mvn deploy:deploy-file -Dfile=sqljdbc42.jar -DartifactId=sqljdbc42 -DgroupId=com.microsoft.sqlserver -DgeneratePom=true -Dpackaging=jar -Dversion=6.0.7507.100 -Durl=file://.됨)sqljdbc42.jar할 수 .- 을 고치다
pom.xml합니다.xml <repositories> <repository> <id>parent-local-repository</id> <name>Parent Local repository</name> <layout>default</layout> <url>file://${basedir}/local-repo</url> <releases> <enabled>true</enabled> </releases> <snapshots> <enabled>true</enabled> </snapshots> </repository> </repositories>이제 추가 구성이나 설치 없이 어디에서나 프로젝트를 실행할 수 있습니다.
@nirmals의 6.1.0.jre7에 대한 의존관계를 포함할 때 문제가 있는 경우 commons-valt/azure-keyvault를 사용하여 https://stackoverflow.com/a/41149866/1570834,에서 답변해 주십시오.
<dependency>
<groupId>com.microsoft.sqlserver</groupId>
<artifactId>mssql-jdbc</artifactId>
<version>6.2.2.jre7</version>
</dependency>
그렇게 어렵지 않아요.저는 아직 라이선스를 읽지 않았습니다.하지만 나는 이것이 효과가 있다는 것을 증명했다.sqljdbc4 jar 파일을 네트워크 공유 또는 로컬 디렉토리에 복사할 수 있습니다.build.gradle은 다음과 같습니다.
apply plugin: 'java'
//apply plugin: 'maven'
//apply plugin: 'enhance'
sourceCompatibility = 1.8
version = '1.0'
//library versions
def hibernateVersion='4.3.10.Final'
def microsoftSQLServerJDBCLibVersion='4.0'
def springVersion='2.5.6'
def log4jVersion='1.2.16'
def jbossejbapiVersion='3.0.0.GA'
repositories {
mavenCentral()
maven{url "file://Sharedir/releases"}
}
dependencies {
testCompile group: 'junit', name: 'junit', version: '4.11'
compile "org.hibernate:hibernate-core:$hibernateVersion"
compile "com.microsoft.sqlserver:sqljdbc4:$microsoftSQLServerJDBCLibVersion"
}
task showMeCache << {
configurations.compile.each { println it }
}
sharedir/releases 디렉토리 아래에 maven 구조(\sharedir\releases\com\microsoft\sqlserver\sqljdbc4\4.0\sqljdbc4-4.0.jar)와 유사한 디렉토리가 있습니다.
행운을 빌어요.
데이비드 옌
다른 드라이버를 사용할 수 있습니다.
<dependency>
<groupId>net.sourceforge.jtds</groupId>
<artifactId>jtds</artifactId>
<version>1.3.1</version>
</dependency>
및 xml 형식
<bean id="idNameDb" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="net.sourceforge.jtds.jdbc.Driver" />
<property name="url" value="jdbc:jtds:sqlserver://[ip]:1433;DatabaseName=[name]" />
<property name="username" value="user" />
<property name="password" value="password" />
</bean>
그com.microsoft.sqlserver현재 Maven의 패키지에는 최저 버전 JDBC로서 버전 6.0 밖에 없습니다.그러니 다른 걸 시도해 보세요groupIdJDBC 버전 4.0을 탑재한 Maven.
저는 이걸 추천해요. 저한테는 효과가 있어요.SQL Server 2012와 Java 8을 사용하고 있습니다.
<dependency>
<groupId>net.sourceforge.jtds</groupId>
<artifactId>jtds</artifactId>
<version>1.3.1</version>
</dependency>
또한 다음과 같은 구성 속성 파일도 있습니다.
jdbc.driverClassName = net.sourceforge.jtds.jdbc.Driver
jdbc.url = jdbc:jtds:sqlserver://localhost:1433;databasename=YourDB;encrypt=true;trustserverCertificate=true
언급URL : https://stackoverflow.com/questions/19537396/missing-artifact-com-microsoft-sqlserversqljdbc4jar4-0
'programing' 카테고리의 다른 글
| python이 json 객체의 어레이에 추가됩니다. (0) | 2023.03.31 |
|---|---|
| AngularJs ng-include는 $scope로 전달되지 않는 한 뷰를 포함하지 않습니다. (0) | 2023.03.31 |
| Go를 사용하여 JSON 응답을 제공하려면 어떻게 해야 합니까? (0) | 2023.03.31 |
| 여러 데이터 소스를 구성한 후 JPA 명명 전략을 설정할 수 없음 (Spring 1.4.1 / Hibernate 5.x) (0) | 2023.03.31 |
| WooCommerce에서만 현재 제품의 제품 태그를 가져옵니다. (0) | 2023.03.31 |