0%

https://maven.apache.org/plugins/maven-dependency-plugin/purge-local-repository-mojo.html

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>3.1.1</version>
<executions>
<execution>
<id>purge-local-repository</id>
<phase>process-sources</phase>
<goals>
<goal>purge-local-repository</goal>
</goals>
<configuration>
<includes>
<include>cn.joinhealth.celina:paas-common</include>
</includes>
</configuration>
</execution>
</executions>
</plugin>

Full name:

org.apache.maven.plugins:maven-dependency-plugin:3.3.0:purge-local-repository

Description:

When run on a project, remove the project dependencies from the local repository, and optionally re-resolve them. Outside of a project, remove the manually given dependencies.

Attributes:

  • The goal is thread-safe and supports parallel builds.
  • Since version: 2.0.

Optional Parameters

Name Type Since Description
<actTransitively> boolean 2.0 Whether this mojo should act on all transitive dependencies. Default value is true. Default value is: true. User property is: actTransitively.
<exclude> String 2.0 Comma-separated list of groupId:artifactId entries, which should be used to exclude artifacts from deletion/refresh. This is a command-line alternative to the excludes parameter, since List parameters are not currently compatible with CLI specification. User property is: exclude.
<excludes> List 2.0 The list of dependencies in the form of groupId:artifactId which should NOT be deleted/refreshed.
<include> String 2.6 Comma-separated list of groupId:artifactId entries, which should be used to include artifacts for deletion/refresh. This is a command-line alternative to the includes parameter, since List parameters are not currently compatible with CLI specification. User property is: include.
<includes> List 2.6 The list of dependencies in the form of groupId:artifactId which should BE deleted/refreshed.
<manualInclude> String 2.6 Comma-separated list of groupId:artifactId entries, which should be used to manually include artifacts for deletion. This is a command-line alternative to the manualIncludes parameter, since List parameters are not currently compatible with CLI specification. User property is: manualInclude.
<manualIncludes> List 2.6 The list of dependencies in the form of groupId:artifactId which should BE deleted/purged from the local repository. Note that using this parameter will deactivate the normal process for purging the current project dependency tree. If this parameter is used, only the included artifacts will be purged. The manualIncludes parameter should not be used in combination with the includes/excludes parameters.
<reResolve> boolean 2.0 Whether to re-resolve the artifacts once they have been deleted from the local repository. If you are running this mojo from the command-line, you may want to disable this. By default, artifacts will be re-resolved. Default value is: true. User property is: reResolve.
<resolutionFuzziness> String 2.0 Determines how liberally the plugin will delete an artifact from the local repository. Values are: file - Eliminate only the artifact’s file.version (default) - Eliminate all files associated with the version of the artifact.artifactId - Eliminate all files associated with the artifact’s artifactId.groupId - Eliminate all files associated with the artifact’s groupId. Default value is: version. User property is: resolutionFuzziness.
<skip> boolean 2.7 Skip plugin execution completely. Default value is: false. User property is: skip.
<snapshotsOnly> boolean 2.4 Whether to purge only snapshot artifacts. Default value is: false. User property is: snapshotsOnly.
<verbose> boolean 2.0 Whether this plugin should output verbose messages. Default is false. Default value is: false. User property is: verbose.

Parameter Details

Whether this mojo should act on all transitive dependencies. Default value is true.

  • Type: boolean
  • Since: 2.0
  • Required: No
  • User Property: actTransitively
  • Default: true

Comma-separated list of groupId:artifactId entries, which should be used to exclude artifacts from deletion/refresh. This is a command-line alternative to the excludes parameter, since List parameters are not currently compatible with CLI specification.

  • Type: java.lang.String
  • Since: 2.0
  • Required: No
  • User Property: exclude

The list of dependencies in the form of groupId:artifactId which should NOT be deleted/refreshed.

  • Type: java.util.List
  • Since: 2.0
  • Required: No

Comma-separated list of groupId:artifactId entries, which should be used to include artifacts for deletion/refresh. This is a command-line alternative to the includes parameter, since List parameters are not currently compatible with CLI specification.

  • Type: java.lang.String
  • Since: 2.6
  • Required: No
  • User Property: include

The list of dependencies in the form of groupId:artifactId which should BE deleted/refreshed.

  • Type: java.util.List
  • Since: 2.6
  • Required: No

Comma-separated list of groupId:artifactId entries, which should be used to manually include artifacts for deletion. This is a command-line alternative to the manualIncludes parameter, since List parameters are not currently compatible with CLI specification.

  • Type: java.lang.String
  • Since: 2.6
  • Required: No
  • User Property: manualInclude

The list of dependencies in the form of groupId:artifactId which should BE deleted/purged from the local repository. Note that using this parameter will deactivate the normal process for purging the current project dependency tree. If this parameter is used, only the included artifacts will be purged. The manualIncludes parameter should not be used in combination with the includes/excludes parameters.

  • Type: java.util.List
  • Since: 2.6
  • Required: No

Whether to re-resolve the artifacts once they have been deleted from the local repository. If you are running this mojo from the command-line, you may want to disable this. By default, artifacts will be re-resolved.

  • Type: boolean
  • Since: 2.0
  • Required: No
  • User Property: reResolve
  • Default: true

Determines how liberally the plugin will delete an artifact from the local repository. Values are:

  • file - Eliminate only the artifact’s file.

  • version (default) - Eliminate all files associated with the version of the artifact.

  • artifactId - Eliminate all files associated with the artifact’s artifactId.

  • groupId - Eliminate all files associated with the artifact’s groupId.

  • Type: java.lang.String

  • Since: 2.0

  • Required: No

  • User Property: resolutionFuzziness

  • Default: version


Skip plugin execution completely.

  • Type: boolean
  • Since: 2.7
  • Required: No
  • User Property: skip
  • Default: false

Whether to purge only snapshot artifacts.

  • Type: boolean
  • Since: 2.4
  • Required: No
  • User Property: snapshotsOnly
  • Default: false

Whether this plugin should output verbose messages. Default is false.

  • Type: boolean
  • Since: 2.0
  • Required: No
  • User Property: verbose
  • Default: false

备份脚本

1
2
3
4
5
# -uroot 用户名
# -pjianhai520 密码
# cloud_followup 需备份数据库
# "D:\yunsuifang\bak\20220422_bak.sql" 备份文件路径
C:\Program Files\MySQL\MySQL Server 5.6\bin\mysqldump --opt -Q -uroot -p123456 --default-character-set=utf8 cloud_followup> "D:\yunsuifang\bak\20220422_bak.sql"

恢复

1
2
3
4
5
6
7
8
9
10
11
12
# 连接
mysql -u root -p -h 127.0.0.1
# 选择数据库
mysql>use cloud_followup;
Database changed

# 修改配置,加快导入速度
mysql> set global innodb_flush_log_at_trx_commit=0;
mysql> set global max_allowed_packet=1024*1024*20;
mysql> set global bulk_insert_buffer_size=32*1024*1024;
mysql> set global innodb_buffer_pool_size=32*1024*1024;
mysql> exit;

source 命令导入备份文件,需要指定-h指定主机地址,否则遇到错误(找不到主机)会中断导入。使用以下语句导入:

1
mysql -hlocalhost -P3306 -uroot -proot -Dcloud_followu --default-character-set=utf8 < d:/data/demo.sql

--default-character-set=utf8指定和导出一样的编码,也是容易出错的地方

@ComponentScan扫描多个包的注解配置:

1
2
3
4
5
6
@Configuration
@ComponentScan(basePackages = {"bean","dao","service"})
public class TxConfig {

}

1. 执行命令加密数据库密码

在命令行中执行如下命令:

1
java -cp druid-1.0.16.jar com.alibaba.druid.filter.config.ConfigTools you_password

输出

1
2
3
privateKey:MIIBVgIBADANBgkqhkiG9w0BAQEFAASCAUAwggE8AgEAAkEA6+4avFnQKP+O7bu5YnxWoOZjv3no4aFV558HTPDoXs6EGD0HP7RzzhGPOKmpLQ1BbA5viSht+aDdaxXp6SvtMQIDAQABAkAeQt4fBo4SlCTrDUcMANLDtIlax/I87oqsONOg5M2JS0jNSbZuAXDv7/YEGEtMKuIESBZh7pvVG8FV531/fyOZAiEA+POkE+QwVbUfGyeugR6IGvnt4yeOwkC3bUoATScsN98CIQDynBXC8YngDNwZ62QPX+ONpqCel6g8NO9VKC+ETaS87wIhAKRouxZL38PqfqV/WlZ5ZGd0YS9gA360IK8zbOmHEkO/AiEAsES3iuvzQNYXFL3x9Tm2GzT1fkSx9wx+12BbJcVD7AECIQCD3Tv9S+AgRhQoNcuaSDNluVrL/B/wOmJRLqaOVJLQGg==
publicKey:MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAOvuGrxZ0Cj/ju27uWJ8VqDmY7956OGhVeefB0zw6F7OhBg9Bz+0c84RjzipqS0NQWwOb4kobfmg3WsV6ekr7TECAwEAAQ==
password:PNak4Yui0+2Ft6JSoKBsgNPl+A033rdLhFw+L0np1o+HDRrCo9VkCuiiXviEMYwUgpHZUFxb2FpE0YmSguuRww==

输入你的数据库密码,输出的是加密后的结果。

2. 配置数据源,提示Druid数据源需要对数据库密码进行解密。

1
2
3
4
5
6
7
8
<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource"
init-method="init" destroy-method="close">
<property name="url" value="jdbc:derby:memory:spring-test;create=true" />
<property name="username" value="sa" />
<property name="password" value="${password}" />
<property name="filters" value="config" />
<property name="connectionProperties" value="config.decrypt=true;config.decrypt.key=${publickey}" />
</bean>

3. 配置参数,让ConfigFilter解密密码

有三种方式配置:

  1. 可以在配置文件properties中指定config.decrypt=true
  2. 也可以在DruidDataSource的ConnectionProperties中指定config.decrypt=true
  3. 也可以在jvm启动参数中指定-Ddruid.config.decrypt=true

4. 用户名加密配置

1
2
3
4
5
6
7
8
9
10
11
12
13
@SuppressWarnings("all")public class DecryptDruidSource extends DruidDataSource {
private static String usernamePublicKey="MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAIiUrZ4iJq7wnhx+Wsb0dRk9JW+HqHObmufhB2NfB9gXXqCYLIb1Oj8J72p1i0yjql5VhX87gqYa3WtCBJcjhU8CAwEAAQ==";

@Override
public void setUsername(String username) {
try {
username = ConfigTools.decrypt(usernamePublicKey,username);
} catch (Exception e) {
e.printStackTrace();
}
super.setUsername(username);
}
}