Cloud SQL + Maven

Comecei a estudar o Google Cloud recentemente. Conseguir subir um projeto e criar um banco com tabelas, entretanto não consigo relacionar estes dois.
Criei um App Engine Standard e posteriormente o transformei em um projeto Maven para seguir os tutoriais da própria Google. Este roda localmente e na nuvem mas no momento de acessar o banco apresenta o seguinte erro:
Unable to connect to Cloud SQL

Caused by:
java.sql.SQLException: No suitable driver found for jdbc:google:mysql:/helical-rhythm-215921:southamerica-east1:webeer-0/webeer?user=root&password={senhadobanco}

essas são as dependências do meu pom.xml

<dependencies>
		<!-- Driver injected at runtime by the use of <use-google-connector-j> 
			in appengine-web.xml -->
		<dependency> <!-- Only used locally -->
			<groupId>mysql</groupId>
			<artifactId>mysql-connector-java</artifactId>
			<version>5.1.42</version>  <!-- v5.x.x is for production, v6.x.x EAP X DevAPI -->
		</dependency>
		<dependency>
			<groupId>com.google.cloud</groupId>
			<artifactId>google-cloud-bigquery</artifactId>
			<version>0.33.0-beta</version>
		</dependency>
		<dependency>
			<groupId>com.google.cloud.sql</groupId>
			<!-- If using MySQL 6.x driver, use mysql-socket-factory-connector-j-6 
				instead -->
			<artifactId>mysql-socket-factory</artifactId>
			<version>1.0.5</version>
		</dependency>
		<dependency>
			<groupId>javax.servlet</groupId>
			<artifactId>javax.servlet-api</artifactId>
			<version>3.1.0</version>
			<type>jar</type>
			<scope>provided</scope>
		</dependency>
	</dependencies>

Nenhum tutorial que encontrei me dá uma solução para isso. Alguém teria alguma lux?
Obrigado!

O correto talvez fosse:

jdbc:mysql:…

Documentação: https://cloud.google.com/sql/docs/mysql/connect-external-app#java

Mas nesse caso seria para ligar um aplicação externa, né? A minha aplicação está no cloud junto com o banco.

Esta documentação também frisa jdbc:mysql…
https://cloud.google.com/appengine/docs/standard/java/cloud-sql/using-cloud-sql-mysql

Segui essa para montar. Ele dá erro ao executar o comando

mvn appengine:run

e dá o seguinte

erro:
No plugin found for prefix ‘appengine’ in the current project and in the plugin groups [org.apache.maven.plugins, org.codehaus.mojo] available from the repositories [local (C:\Users\ivanf.m2\repository), central (https://repo.maven.apache.org/maven2)]

no seu pom.xml esta faltando esse plugin :

<plugin>
  <groupId>com.google.cloud.tools</groupId>
  <artifactId>appengine-maven-plugin</artifactId>
  <version>1.3.1</version>
  <configuration>
    <deploy.promote>true</deploy.promote>
    <deploy.stopPreviousVersion>true</deploy.stopPreviousVersion>
  </configuration>
</plugin>

reveja o tutorial :

https://cloud.google.com/appengine/docs/standard/java/cloud-sql/using-cloud-sql-mysql

Agora mudou o erro:
Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.7.0:testCompile (default-testCompile) on project webeer: Fatal error compiling: invalid target release: 1.8 -> [Help 1]

Eu usei esse tutorial mas mesmo assim esses erros aparecem.
Procurei uma solução para esses novos problemas mas não encontrei nada que resolvesse :confused:

Ola por favor poste o seu pom.xml completo.

Segue conforme pedido.

<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">
<modelVersion>4.0.0</modelVersion>
<groupId>webeer</groupId>
<artifactId>webeer</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>war</packaging>

<build>
	<plugins>
		<plugin>
			<groupId>com.google.cloud.tools</groupId>
			<artifactId>appengine-maven-plugin</artifactId>
			<version>1.3.1</version>
			<configuration>
				<deploy.promote>true</deploy.promote>
				<deploy.stopPreviousVersion>true</deploy.stopPreviousVersion>
			</configuration>
		</plugin>
		<plugin>
			<artifactId>maven-compiler-plugin</artifactId>
			<version>3.7.0</version>
			<configuration>
				<source>1.8</source>
				<target>1.8</target>
			</configuration>
		</plugin>
		<plugin>
			<artifactId>maven-war-plugin</artifactId>
			<version>3.2.1</version>
		</plugin>
		<plugin>
			<groupId>com.google.appengine</groupId>
			<artifactId>appengine-maven-plugin</artifactId>
			<version>com.google.appengine appengine-maven-plugin 1.9.15</version>
		</plugin>
	</plugins>
</build>

<properties>
	<!-- INSTANCE_CONNECTION_NAME from Cloud Console > SQL > Instance Details 
		> Properties or gcloud sql instances describe <instance> project:region:instance 
		for Cloud SQL 2nd Generation or project:instance for Cloud SQL 1st Generation -->
	<INSTANCE_CONNECTION_NAME>helical-rhythm-215921:southamerica-east1:webeer-0</INSTANCE_CONNECTION_NAME>
	<user>user</user>
	<password>senha</password>
	<database>webeer</database>

	<maven.compiler.target>1.8</maven.compiler.target>
	<maven.compiler.source>1.8</maven.compiler.source>

</properties>


<dependencies>
	<!-- Driver injected at runtime by the use of <use-google-connector-j> 
		in appengine-web.xml -->
	<dependency> <!-- Only used locally -->
		<groupId>mysql</groupId>
		<artifactId>mysql-connector-java</artifactId>
		<version>5.1.42</version>  <!-- v5.x.x is for production, v6.x.x EAP X DevAPI -->
	</dependency>
	<dependency>
		<groupId>com.google.cloud</groupId>
		<artifactId>google-cloud-bigquery</artifactId>
		<version>0.33.0-beta</version>
	</dependency>
	<dependency>
		<groupId>com.google.cloud.sql</groupId>
		<!-- If using MySQL 6.x driver, use mysql-socket-factory-connector-j-6 
			instead -->
		<artifactId>mysql-socket-factory</artifactId>
		<version>1.0.5</version>
	</dependency>

	<dependency>
		<groupId>javax.servlet</groupId>
		<artifactId>javax.servlet-api</artifactId>
		<version>3.1.0</version>
		<type>jar</type>
		<scope>provided</scope>
	</dependency>

</dependencies>

Agradeço por sua paciência :smiley:

o seu Pom.XML esta bem diferente do que é mostrado no link da Google Cloud :

1 curtida

Estava seguindo o tutorial mas não tinha entrado no git.
Fiz as modificações segundo o código exemplo, inclusive alterei o appengine-web.xml. Mas ao executar o comando mvn appengine:run na pasta do projeto o erro persiste (Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.7.0:testCompile (default-testCompile) on project webeer: Fatal error compiling: invalid target release: 1.8 -> [Help 1]).
E ao acessar o página que se conecta ao banco ela apresenta este erro:
java.sql.SQLException: No suitable driver found for jdbc:mysql://google/webeer?useSSL=false&cloudSqlInstance=helical-rhythm-215921:southamerica-east1:webeer-0&socketFactory=com.google.cloud.sql.mysql.SocketFactory&user={user}&password={SENHA}

Já limpei o repositório do m2, alterei a configuração de instalação do maven e dei um clean no projeto por linha de comando. Nada disso funcionou.

voce tem Java 8 instalado na sua maquina ?

voce tem o github de seu projeto ?

seu projeto fica com algo em vermelho, posta um print .

1 curtida

Sim, uso o Java 8. Não tem nenhuma sinalização vermelha, só uns warmings.

Segue o GitHub
Obrigado pela disposição em ajudar, estou à dias procurando solução e nada dá certo.