Estou tentando adicionar a dependência do driver MS SQL em meu arquivo POM.xml e o seguinte é a dependência.
<dependency>
<groupId>com.microsoft.sqlserver</groupId>
<artifactId>sqljdbc4</artifactId>
<version>4.0</version>
</dependency>
mas eu recebo esta exceção
Artefato ausente com.microsoft.sqlserver: sqljdbc4: jar: 4.0
Eu realmente não entendo o problema.
fonte
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-install-plugin:2.4 :install-file (default-cli) on project standalone-pom: The specified file 'C:\Us ers\anthony\sqljdbc4.jar' not exists -> [Help 1]
-Dfile=C:\Users\anthony\Downloads\sqljdbc4.jar
por exemplo.A Microsoft recentemente abriu o código-fonte de seu driver jdbc .
Agora você pode encontrar o driver na central maven:
ou para java 7:
fonte
Eu tive o problema semelhante e resolvi fazendo o seguinte.
* Avançar -> Preencha o seguinte
Artifact file:
caminho de detalhes do jar que você baixou (Ex: E: \ lib \ sqljdbc4.jar no meu caso)Group Id:
com.microsoft.sqlserverArtifact Id:
sqljdbc4Version:
4.0Obrigado!
fonte
A resposta acima apenas adiciona o sqljdbc4.jar ao repositório local . Como resultado, ao criar o jar do projeto final para distribuição, o sqljdbc4 estará ausente novamente, conforme indicado no comentário de @Tony sobre o erro de tempo de execução.
A Microsoft (e a Oracle e outros fornecedores terceirizados) restringem a distribuição de seu software de acordo com o ENU / EULA. Portanto, esses módulos de software não são adicionados aos jars produzidos pelo Maven para distribuição. Existem hacks para contornar isso (como fornecer a localização do arquivo jar de terceiros no tempo de execução), mas como desenvolvedor, você deve ter cuidado para não violar o licenciamento.
Uma abordagem melhor para conectores / drivers jdbc é usar jTDS , que é compatível com a maioria dos SGBDs, mais confiável, mais rápido (conforme benchmarks) e distribuído sob licença GNU. Isso tornará sua vida muito mais fácil de usar do que tentar enfiar o pino quadrado no buraco redondo seguindo qualquer uma das outras técnicas acima.
fonte
Você também pode criar um repositório de projeto. É útil se mais desenvolvedores estiverem trabalhando no mesmo projeto, e a biblioteca deve ser incluída no projeto.
Primeiro, crie uma estrutura de repositório no diretório lib do seu projeto e, em seguida, copie a biblioteca para ele. A biblioteca deve ter o seguinte formato de nome:
<artifactId>-<version>.jar
<your_project_dir>/lib/com/microsoft/sqlserver/<artifactId>/<version>/
Crie o arquivo pom próximo ao arquivo de biblioteca e coloque as seguintes informações nele:
Neste ponto, você deve ter esta estrutura de diretório:
<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
Vá para o arquivo pom do seu projeto e adicione um novo repositório:
Finalmente, adicione uma dependência na biblioteca:
Atualização 4.3.2017
Parece que a biblioteca pode ser obtida em um repositório disponível publicamente. @ver as respostas de nirmal e Jacek Grzelaczyk para mais detalhes.
fonte
apenas adicione
fonte
Se você está tendo algum problema ao incluir dependência para 6.1.0.jre7 de @nirmals, responda em https://stackoverflow.com/a/41149866/1570834 , em seu pom com commons-codec / azure-keyvault, eu prefiro continuar com isso :
fonte
Não é muito difícil. Eu não li a licença ainda. No entanto, eu provei que isso funciona. Você pode copiar o arquivo jar sqljdbc4 para um compartilhamento de rede ou diretório local. Seu build.gradle deve ser assim:
no diretório sharedir / releases, tenho um diretório semelhante à estrutura maven que é \ sharedir \ releases \ com \ microsoft \ sqlserver \ sqljdbc4 \ 4.0 \ sqljdbc4-4.0.jar
boa sorte.
David Yen
fonte
Para projetos Maven auto-suficientes, geralmente instalo todas as dependências jar externas no repositório do projeto. Para o driver JDBC do SQL Server, você pode fazer:
local-repo
em seu projeto Mavensqljdbc42.jar
paralocal-repo
pastalocal-repo
pasta, executemvn deploy:deploy-file -Dfile=sqljdbc42.jar -DartifactId=sqljdbc42 -DgroupId=com.microsoft.sqlserver -DgeneratePom=true -Dpackaging=jar -Dversion=6.0.7507.100 -Durl=file://.
para implantar JAR no repositório local (armazenado junto com o seu código no SCM)sqljdbc42.jar
e os arquivos baixados podem ser excluídospom.xml
e adicione referência ao repositório local do projeto: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>
Agora você pode executar seu projeto em qualquer lugar, sem quaisquer configurações ou instalações adicionais.fonte
Você pode usar outro driver
e em xml
fonte