mirror of https://github.com/alibaba/druid.git
Compare commits
8 Commits
97b58b91fc
...
f40a7b140e
Author | SHA1 | Date |
---|---|---|
|
f40a7b140e | |
|
2e6bb735fb | |
|
a179bb9750 | |
|
7629916024 | |
|
0444f4f532 | |
|
ac484261c0 | |
|
31177b91f6 | |
|
ecd282c46c |
|
@ -4,7 +4,7 @@
|
|||
<parent>
|
||||
<groupId>com.alibaba</groupId>
|
||||
<artifactId>druid-parent</artifactId>
|
||||
<version>1.2.25</version>
|
||||
<version>1.2.26-SNAPSHOT</version>
|
||||
<relativePath>../pom.xml</relativePath>
|
||||
</parent>
|
||||
<artifactId>druid</artifactId>
|
||||
|
|
|
@ -91,6 +91,7 @@ public enum SQLBinaryOperator {
|
|||
RegExp("REGEXP", 110),
|
||||
NotRegExp("NOT REGEXP", 110),
|
||||
Equality("=", 110),
|
||||
EqEq("==", 110),
|
||||
|
||||
BitwiseNot("!", 130),
|
||||
Concat("||", 140),
|
||||
|
|
|
@ -42,26 +42,31 @@ public class SQLMethodInvokeExpr extends SQLExprImpl implements SQLReplaceable,
|
|||
protected transient SQLDataType resolvedReturnDataType;
|
||||
|
||||
public SQLMethodInvokeExpr() {
|
||||
this.removeBrackets = false;
|
||||
}
|
||||
|
||||
public SQLMethodInvokeExpr(String methodName) {
|
||||
this.methodName = methodName;
|
||||
this.removeBrackets = false;
|
||||
}
|
||||
|
||||
public SQLMethodInvokeExpr(SQLIdentifierExpr methodName) {
|
||||
this.methodName = methodName.name;
|
||||
this.methodNameHashCode64 = methodName.hashCode64;
|
||||
this.setSource(methodName.getSourceLine(), methodName.getSourceColumn());
|
||||
this.removeBrackets = false;
|
||||
}
|
||||
|
||||
public SQLMethodInvokeExpr(String methodName, long methodNameHashCode64) {
|
||||
this.methodName = methodName;
|
||||
this.methodNameHashCode64 = methodNameHashCode64;
|
||||
this.removeBrackets = false;
|
||||
}
|
||||
|
||||
public SQLMethodInvokeExpr(String methodName, SQLExpr owner) {
|
||||
this.methodName = methodName;
|
||||
setOwner(owner);
|
||||
this.removeBrackets = false;
|
||||
}
|
||||
|
||||
public SQLMethodInvokeExpr(String methodName, SQLExpr owner, SQLExpr... params) {
|
||||
|
@ -70,6 +75,7 @@ public class SQLMethodInvokeExpr extends SQLExprImpl implements SQLReplaceable,
|
|||
for (SQLExpr param : params) {
|
||||
this.addArgument(param);
|
||||
}
|
||||
this.removeBrackets = false;
|
||||
}
|
||||
|
||||
public SQLMethodInvokeExpr(String methodName, SQLExpr owner, List<SQLExpr> params) {
|
||||
|
@ -78,6 +84,7 @@ public class SQLMethodInvokeExpr extends SQLExprImpl implements SQLReplaceable,
|
|||
for (SQLExpr param : params) {
|
||||
this.addArgument(param);
|
||||
}
|
||||
this.removeBrackets = false;
|
||||
}
|
||||
|
||||
public long methodNameHashCode64() {
|
||||
|
@ -386,6 +393,7 @@ public class SQLMethodInvokeExpr extends SQLExprImpl implements SQLReplaceable,
|
|||
x.putAttribute(key, value);
|
||||
}
|
||||
}
|
||||
x.setRemoveBrackets(removeBrackets);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -39,6 +39,7 @@ public class CKLexer extends Lexer {
|
|||
map.put("FINAL", Token.FINAL);
|
||||
map.put("TTL", Token.TTL);
|
||||
map.put("CODEC", Token.CODEC);
|
||||
map.remove("ANY");
|
||||
|
||||
return new Keywords(map);
|
||||
}
|
||||
|
|
|
@ -5,11 +5,18 @@ import com.alibaba.druid.sql.ast.expr.SQLIdentifierExpr;
|
|||
import com.alibaba.druid.sql.ast.statement.SQLAssignItem;
|
||||
import com.alibaba.druid.sql.ast.statement.SQLSelectGroupByClause;
|
||||
import com.alibaba.druid.sql.ast.statement.SQLSelectQueryBlock;
|
||||
import com.alibaba.druid.sql.ast.statement.SQLTableSource;
|
||||
import com.alibaba.druid.sql.ast.statement.SQLWithSubqueryClause;
|
||||
import com.alibaba.druid.sql.dialect.clickhouse.ast.CKSelectQueryBlock;
|
||||
import com.alibaba.druid.sql.parser.*;
|
||||
import com.alibaba.druid.sql.parser.Lexer;
|
||||
import com.alibaba.druid.sql.parser.SQLExprParser;
|
||||
import com.alibaba.druid.sql.parser.SQLSelectListCache;
|
||||
import com.alibaba.druid.sql.parser.SQLSelectParser;
|
||||
import com.alibaba.druid.sql.parser.Token;
|
||||
import com.alibaba.druid.util.FnvHash;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public class CKSelectParser
|
||||
extends SQLSelectParser {
|
||||
public CKSelectParser(Lexer lexer) {
|
||||
|
@ -85,12 +92,29 @@ public class CKSelectParser
|
|||
|
||||
@Override
|
||||
public void parseFrom(SQLSelectQueryBlock queryBlock) {
|
||||
super.parseFrom(queryBlock);
|
||||
if (lexer.token() == Token.FINAL) {
|
||||
lexer.nextToken();
|
||||
((CKSelectQueryBlock) queryBlock).setFinal(true);
|
||||
List<String> comments = null;
|
||||
if (lexer.hasComment() && lexer.isKeepComments()) {
|
||||
comments = lexer.readAndResetComments();
|
||||
}
|
||||
|
||||
if (lexer.nextIf(Token.FROM)) {
|
||||
SQLTableSource from = parseTableSource();
|
||||
|
||||
if (comments != null) {
|
||||
from.addBeforeComment(comments);
|
||||
}
|
||||
|
||||
queryBlock.setFrom(from);
|
||||
} else {
|
||||
((CKSelectQueryBlock) queryBlock).setFinal(false);
|
||||
if (comments != null) {
|
||||
queryBlock.addAfterComment(comments);
|
||||
}
|
||||
}
|
||||
|
||||
if (lexer.nextIf(Token.FINAL)) {
|
||||
if (queryBlock instanceof CKSelectQueryBlock) {
|
||||
((CKSelectQueryBlock) queryBlock).setFinal(true);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -8,7 +8,9 @@ import com.alibaba.druid.sql.dialect.clickhouse.ast.CKCreateTableStatement;
|
|||
import com.alibaba.druid.sql.dialect.clickhouse.ast.CKSelectQueryBlock;
|
||||
import com.alibaba.druid.sql.dialect.clickhouse.ast.ClickhouseColumnCodec;
|
||||
import com.alibaba.druid.sql.dialect.clickhouse.ast.ClickhouseColumnTTL;
|
||||
import com.alibaba.druid.sql.parser.CharTypes;
|
||||
import com.alibaba.druid.sql.visitor.SQLASTOutputVisitor;
|
||||
import com.alibaba.druid.sql.visitor.VisitorFeature;
|
||||
import com.alibaba.druid.util.StringUtils;
|
||||
|
||||
import java.util.List;
|
||||
|
@ -230,6 +232,55 @@ public class CKOutputVisitor extends SQLASTOutputVisitor implements CKASTVisitor
|
|||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void printComment(String comment) {
|
||||
if (comment == null) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (isEnabled(VisitorFeature.OutputSkipMultilineComment) && comment.startsWith("/*")) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (isEnabled(VisitorFeature.OutputSkipSingleLineComment)
|
||||
&& (comment.startsWith("-") || comment.startsWith("#"))) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (comment.startsWith("--")
|
||||
&& comment.length() > 2
|
||||
&& comment.charAt(2) != ' '
|
||||
&& comment.charAt(2) != '-') {
|
||||
print0("-- ");
|
||||
print0(comment.substring(2));
|
||||
} else if (comment.startsWith("#")
|
||||
&& comment.length() > 1
|
||||
&& comment.charAt(1) != ' '
|
||||
&& comment.charAt(1) != '#') {
|
||||
print0("# ");
|
||||
print0(comment.substring(1));
|
||||
} else if (comment.startsWith("/*")) {
|
||||
println();
|
||||
print0(comment);
|
||||
} else if (comment.startsWith("--")) {
|
||||
print0(comment);
|
||||
}
|
||||
|
||||
char first = '\0';
|
||||
for (int i = 0; i < comment.length(); i++) {
|
||||
char c = comment.charAt(i);
|
||||
if (CharTypes.isWhitespace(c)) {
|
||||
continue;
|
||||
}
|
||||
first = c;
|
||||
break;
|
||||
}
|
||||
|
||||
if (first == '-' || first == '#') {
|
||||
endLineComment = true;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void printAfterFetch(SQLSelectQueryBlock queryBlock) {
|
||||
if (queryBlock instanceof CKSelectQueryBlock) {
|
||||
|
@ -274,6 +325,19 @@ public class CKOutputVisitor extends SQLASTOutputVisitor implements CKASTVisitor
|
|||
|
||||
@Override
|
||||
protected void printFrom(SQLSelectQueryBlock x) {
|
||||
SQLTableSource from = x.getFrom();
|
||||
if (from == null) {
|
||||
return;
|
||||
}
|
||||
|
||||
List<String> beforeComments = from.getBeforeCommentsDirect();
|
||||
if (beforeComments != null) {
|
||||
for (String comment : beforeComments) {
|
||||
println();
|
||||
print0(comment);
|
||||
}
|
||||
}
|
||||
|
||||
super.printFrom(x);
|
||||
if (x instanceof CKSelectQueryBlock && ((CKSelectQueryBlock) x).isFinal()) {
|
||||
print0(ucase ? " FINAL" : " final");
|
||||
|
|
|
@ -3,7 +3,14 @@ package com.alibaba.druid.sql.dialect.hologres.visitor;
|
|||
import com.alibaba.druid.DbType;
|
||||
import com.alibaba.druid.sql.ast.SQLPartitionBy;
|
||||
import com.alibaba.druid.sql.ast.statement.SQLCreateTableStatement;
|
||||
import com.alibaba.druid.sql.ast.statement.SQLSelectQueryBlock;
|
||||
import com.alibaba.druid.sql.ast.statement.SQLTableSource;
|
||||
import com.alibaba.druid.sql.dialect.clickhouse.ast.CKSelectQueryBlock;
|
||||
import com.alibaba.druid.sql.dialect.postgresql.visitor.PGOutputVisitor;
|
||||
import com.alibaba.druid.sql.parser.CharTypes;
|
||||
import com.alibaba.druid.sql.visitor.VisitorFeature;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public class HologresOutputVisitor extends PGOutputVisitor {
|
||||
public HologresOutputVisitor(StringBuilder appender, boolean parameterized) {
|
||||
|
@ -27,4 +34,74 @@ public class HologresOutputVisitor extends PGOutputVisitor {
|
|||
print0(ucase ? "PARTITION BY " : "partition by ");
|
||||
partitionBy.accept(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void printFrom(SQLSelectQueryBlock x) {
|
||||
SQLTableSource from = x.getFrom();
|
||||
if (from == null) {
|
||||
return;
|
||||
}
|
||||
|
||||
List<String> beforeComments = from.getBeforeCommentsDirect();
|
||||
if (beforeComments != null) {
|
||||
for (String comment : beforeComments) {
|
||||
println();
|
||||
print0(comment);
|
||||
}
|
||||
}
|
||||
|
||||
super.printFrom(x);
|
||||
if (x instanceof CKSelectQueryBlock && ((CKSelectQueryBlock) x).isFinal()) {
|
||||
print0(ucase ? " FINAL" : " final");
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void printComment(String comment) {
|
||||
if (comment == null) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (isEnabled(VisitorFeature.OutputSkipMultilineComment) && comment.startsWith("/*")) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (isEnabled(VisitorFeature.OutputSkipSingleLineComment)
|
||||
&& (comment.startsWith("-") || comment.startsWith("#"))) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (comment.startsWith("--")
|
||||
&& comment.length() > 2
|
||||
&& comment.charAt(2) != ' '
|
||||
&& comment.charAt(2) != '-') {
|
||||
print0("-- ");
|
||||
print0(comment.substring(2));
|
||||
} else if (comment.startsWith("#")
|
||||
&& comment.length() > 1
|
||||
&& comment.charAt(1) != ' '
|
||||
&& comment.charAt(1) != '#') {
|
||||
print0("# ");
|
||||
print0(comment.substring(1));
|
||||
} else if (comment.startsWith("/*")) {
|
||||
println();
|
||||
print0(comment);
|
||||
} else if (comment.startsWith("--")) {
|
||||
print0(comment);
|
||||
}
|
||||
|
||||
char first = '\0';
|
||||
for (int i = 0; i < comment.length(); i++) {
|
||||
char c = comment.charAt(i);
|
||||
if (CharTypes.isWhitespace(c)) {
|
||||
continue;
|
||||
}
|
||||
first = c;
|
||||
break;
|
||||
}
|
||||
|
||||
if (first == '-' || first == '#') {
|
||||
endLineComment = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -2520,17 +2520,25 @@ public class Lexer {
|
|||
if (ch == '/' && charAt(pos + 1) == '*') {
|
||||
scanChar();
|
||||
scanChar();
|
||||
if (ch == '!' || ch == '+') {
|
||||
scanChar();
|
||||
++depth;
|
||||
}
|
||||
++depth;
|
||||
}
|
||||
|
||||
if (ch == '*' && charAt(pos + 1) == '/') {
|
||||
scanChar();
|
||||
scanChar();
|
||||
if (0 == --depth) {
|
||||
break;
|
||||
int curPos = pos;
|
||||
boolean terminated = true;
|
||||
// If '*/' has leading '--' in the same line, just skip it. For example '-- xxxx */'.
|
||||
while (curPos > 0 && charAt(curPos) != '\n') {
|
||||
if (charAt(curPos) == '-' && (curPos + 1) < text.length() && charAt(curPos + 1) == '-') {
|
||||
terminated = false;
|
||||
}
|
||||
curPos--;
|
||||
}
|
||||
if (terminated) {
|
||||
scanChar();
|
||||
scanChar();
|
||||
if (0 == --depth) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -3657,7 +3657,8 @@ public class SQLExprParser extends SQLParser {
|
|||
}
|
||||
|
||||
protected SQLExpr relationalRestEqeq(SQLExpr expr) {
|
||||
return expr;
|
||||
lexer.nextToken();
|
||||
return new SQLBinaryOpExpr(expr, SQLBinaryOperator.EqEq, expr());
|
||||
}
|
||||
|
||||
protected SQLExpr relationalRestTilde(SQLExpr expr) {
|
||||
|
|
|
@ -1100,6 +1100,10 @@ public class SQLSelectParser extends SQLParser {
|
|||
} else {
|
||||
item = this.exprParser.expr();
|
||||
}
|
||||
if (lexer.nextIf(Token.AS)) {
|
||||
item = new SQLAliasedExpr(item, lexer.stringVal);
|
||||
lexer.nextToken();
|
||||
}
|
||||
|
||||
if (dialectFeatureEnabled(GroupByItemOrder)) {
|
||||
if (lexer.token == Token.DESC) {
|
||||
|
|
|
@ -105,7 +105,7 @@ public class SQLASTOutputVisitor extends SQLASTVisitorAdapter implements Paramet
|
|||
|
||||
protected transient int lines;
|
||||
private TimeZone timeZone;
|
||||
private boolean endLineComment;
|
||||
protected boolean endLineComment;
|
||||
|
||||
protected SQLDialect dialect;
|
||||
|
||||
|
|
|
@ -1,3 +1,24 @@
|
|||
select
|
||||
/*
|
||||
/*
|
||||
xxx
|
||||
*/
|
||||
*/ a from test
|
||||
--------------------
|
||||
SELECT a
|
||||
FROM test
|
||||
------------------------------------------------------------------------------------------------------------------------
|
||||
select if(a=='G', b, c) from test
|
||||
--------------------
|
||||
SELECT if(a == 'G', b, c)
|
||||
FROM test
|
||||
------------------------------------------------------------------------------------------------------------------------
|
||||
select a, b, count(1) from test group by a as c, b as d
|
||||
--------------------
|
||||
SELECT a, b, count(1)
|
||||
FROM test
|
||||
GROUP BY a AS c, b AS d
|
||||
------------------------------------------------------------------------------------------------------------------------
|
||||
select c from b where c=1 ${if(len(a)=0,'and 1=1',"and a>0")} ${if(len(a)=0,'and 1=1',"and a>0")}
|
||||
--------------------
|
||||
SELECT c
|
||||
|
|
|
@ -0,0 +1,33 @@
|
|||
/*
|
||||
this is comment 1
|
||||
this is comment 2
|
||||
*/
|
||||
select 1
|
||||
--------------------
|
||||
/*
|
||||
this is comment 1
|
||||
this is comment 2
|
||||
*/
|
||||
SELECT 1
|
||||
------------------------------------------------------------------------------------------------------------------------
|
||||
/* this is comment 1 */
|
||||
select 1
|
||||
--------------------
|
||||
/* this is comment 1 */
|
||||
SELECT 1
|
||||
------------------------------------------------------------------------------------------------------------------------
|
||||
select a /* xxxx
|
||||
xxx
|
||||
xxxx*/ from test
|
||||
--------------------
|
||||
SELECT a
|
||||
/* xxxx
|
||||
xxx
|
||||
xxxx*/
|
||||
FROM test
|
||||
------------------------------------------------------------------------------------------------------------------------
|
||||
select a /* xxxxxxxx*/ from test
|
||||
--------------------
|
||||
SELECT a
|
||||
/* xxxxxxxx*/
|
||||
FROM test
|
|
@ -1,3 +1,33 @@
|
|||
select a from test
|
||||
-- origin
|
||||
-- ${if(gFinPeriod="季度","/*","")}
|
||||
-- origin end
|
||||
-- new
|
||||
/*
|
||||
-- new end
|
||||
where 1=1
|
||||
-- origin
|
||||
-- ${if(gFinPeriod="季度","","*/")}
|
||||
-- origin end
|
||||
-- new
|
||||
*/
|
||||
--new end
|
||||
--------------------
|
||||
SELECT a
|
||||
FROM test -- origin
|
||||
-- ${if(gFinPeriod="季度","/*","")}
|
||||
-- origin end
|
||||
-- new
|
||||
/*
|
||||
-- new end
|
||||
where 1=1
|
||||
-- origin
|
||||
-- ${if(gFinPeriod="季度","","*/")}
|
||||
-- origin end
|
||||
-- new
|
||||
*/
|
||||
-- new end
|
||||
------------------------------------------------------------------------------------------------------------------------
|
||||
SELECT sum(ret_amount) AS '应收金额'
|
||||
FROM test.test
|
||||
GROUP BY a ORDER BY '应收金额' DESC;
|
||||
|
|
|
@ -34,7 +34,7 @@
|
|||
<dependency>
|
||||
<groupId>com.alibaba</groupId>
|
||||
<artifactId>druid-spring-boot-starter</artifactId>
|
||||
<version>1.2.25</version>
|
||||
<version>1.2.26-SNAPSHOT</version>
|
||||
</dependency>
|
||||
<!-- Spring and Spring Boot dependencies -->
|
||||
<dependency>
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
<parent>
|
||||
<groupId>com.alibaba</groupId>
|
||||
<artifactId>druid-parent</artifactId>
|
||||
<version>1.2.25</version>
|
||||
<version>1.2.26-SNAPSHOT</version>
|
||||
<relativePath>../pom.xml</relativePath>
|
||||
</parent>
|
||||
<artifactId>druid-spring-boot-3-starter</artifactId>
|
||||
|
|
|
@ -21,6 +21,7 @@ import org.aopalliance.aop.Advice;
|
|||
import org.springframework.aop.Advisor;
|
||||
import org.springframework.aop.framework.autoproxy.DefaultAdvisorAutoProxyCreator;
|
||||
import org.springframework.aop.support.RegexpMethodPointcutAdvisor;
|
||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingClass;
|
||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
|
||||
|
@ -40,6 +41,7 @@ public class DruidSpringAopConfiguration {
|
|||
}
|
||||
|
||||
@Bean
|
||||
@ConditionalOnMissingClass("org.aspectj.weaver.Advice")
|
||||
@ConditionalOnProperty(name = "spring.aop.auto", havingValue = "false")
|
||||
public DefaultAdvisorAutoProxyCreator advisorAutoProxyCreator() {
|
||||
DefaultAdvisorAutoProxyCreator advisorAutoProxyCreator = new DefaultAdvisorAutoProxyCreator();
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
<parent>
|
||||
<groupId>com.alibaba</groupId>
|
||||
<artifactId>druid-parent</artifactId>
|
||||
<version>1.2.25</version>
|
||||
<version>1.2.26-SNAPSHOT</version>
|
||||
<relativePath>../pom.xml</relativePath>
|
||||
</parent>
|
||||
<artifactId>druid-spring-boot-starter</artifactId>
|
||||
|
|
|
@ -21,6 +21,7 @@ import org.aopalliance.aop.Advice;
|
|||
import org.springframework.aop.Advisor;
|
||||
import org.springframework.aop.framework.autoproxy.DefaultAdvisorAutoProxyCreator;
|
||||
import org.springframework.aop.support.RegexpMethodPointcutAdvisor;
|
||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingClass;
|
||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
|
||||
|
@ -40,6 +41,7 @@ public class DruidSpringAopConfiguration {
|
|||
}
|
||||
|
||||
@Bean
|
||||
@ConditionalOnMissingClass("org.aspectj.weaver.Advice")
|
||||
@ConditionalOnProperty(name = "spring.aop.auto", havingValue = "false")
|
||||
public DefaultAdvisorAutoProxyCreator advisorAutoProxyCreator() {
|
||||
DefaultAdvisorAutoProxyCreator advisorAutoProxyCreator = new DefaultAdvisorAutoProxyCreator();
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
<parent>
|
||||
<groupId>com.alibaba</groupId>
|
||||
<artifactId>druid-parent</artifactId>
|
||||
<version>1.2.25</version>
|
||||
<version>1.2.26-SNAPSHOT</version>
|
||||
<relativePath>../pom.xml</relativePath>
|
||||
</parent>
|
||||
<groupId>com.alibaba</groupId>
|
||||
|
|
14
pom.xml
14
pom.xml
|
@ -6,7 +6,7 @@
|
|||
|
||||
<groupId>com.alibaba</groupId>
|
||||
<artifactId>druid-parent</artifactId>
|
||||
<version>1.2.25</version>
|
||||
<version>1.2.26-SNAPSHOT</version>
|
||||
<name>${project.artifactId}</name>
|
||||
<description>A JDBC datasource implementation.</description>
|
||||
<packaging>pom</packaging>
|
||||
|
@ -81,12 +81,12 @@
|
|||
|
||||
<distributionManagement>
|
||||
<repository>
|
||||
<id>ossrh</id>
|
||||
<url>https://oss.sonatype.org/service/local/staging/deploy/maven2/</url>
|
||||
<id>central</id>
|
||||
<url>https://central.sonatype.org/service/local/staging/deploy/maven2/</url>
|
||||
</repository>
|
||||
<snapshotRepository>
|
||||
<id>ossrh</id>
|
||||
<url>https://oss.sonatype.org/content/repositories/snapshots</url>
|
||||
<id>central</id>
|
||||
<url>https://central.sonatype.com/repository/maven-snapshots/</url>
|
||||
</snapshotRepository>
|
||||
</distributionManagement>
|
||||
|
||||
|
@ -470,8 +470,8 @@
|
|||
</execution>
|
||||
</executions>
|
||||
<configuration>
|
||||
<serverId>ossrh</serverId>
|
||||
<nexusUrl>https://oss.sonatype.org/</nexusUrl>
|
||||
<serverId>central</serverId>
|
||||
<nexusUrl>https://central.sonatype.org/</nexusUrl>
|
||||
<autoReleaseAfterClose>true</autoReleaseAfterClose>
|
||||
<!--
|
||||
If you are deploying to Maven Central,
|
||||
|
|
Loading…
Reference in New Issue