commons-core
Used in:
components
- OverviewOverview
- VersionsVersions
- DependentsDependents
- DependenciesDependencies
<dependency> <groupId>cn.ponfee</groupId> <artifactId>commons-core</artifactId> <version>1.4</version> </dependency>
<?xml version="1.0" encoding="UTF-8"?> <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>cn.ponfee</groupId> <artifactId>commons-core</artifactId> <version>1.4</version> <!-- Maven: > deploy: mvn -Drevision=_ versions:set -DnewVersion=1.4-SNAPSHOT && mvn clean deploy -Prelease -DskipTests -Dcheckstyle.skip=true -U > maven wrapper:https://maven.apache.org/wrapper/index.html > 解决maven-wrapper的版本问题:生成时需要删除掉“$MAVEN_HOME/conf/settings.xml”文件中配置的mirror > 1)Install(会生成.mvn文件夹、mvnw和mvnw.cmd脚本):mvn wrapper:wrapper -Dmaven=3.6.3 > 2)Usage: > 2.1)Linux:./mvnw clean install -Dmaven.test.skip=true > 2.2)Windows:mvnw.cmd clean install -Dmaven.test.skip=true > 依赖处理:1、最短路径原则;2、最先声明原则; > 查看有效的pom:mvn help:effective-pom > javac: 不加“-g”则默认为“-g:source,lines” > lines:字节码文件中对应源码的行号(Line number debugging information) > vars:字节码文件中对应源码的局部变量的符号表(Local variable debugging information) > source:将该类文件对应的源文件名称写进字节码中(Source file debugging information,针对非public修饰类场景) > -g 生成所有调试信息 > -g:none 不生成任何调试信息 > -g:{lines,vars,source} 只生成某些调试信息 > -source: version > -target: version > Alibaba P3C手册:https://github.com/alibaba/p3c > sonar参考文章:https://www.jianshu.com/p/68a3ed571314 --> <!-- Logging: slf4j-ext.jar —> 扩展功能 slf4j-nop.jar —> (slf4j —> null) slf4j的空接口输出绑定,丢弃所有日志输出 slf4j-simple.jar —> (slf4j —> slf4j-simple) slf4j的自带的简单日志输出实现 slf4j-android.jar —> (android —> slf4j) 将android环境下的日志,桥接到slf4j log4j-1.2-api.jar —> (log4j —> log4j2) 将log4j的日志转接到log4j2日志框架 slf4j的具体实现:slf4j-simple、logback slf4j adapter to impl(LogImpl):http://www.slf4j.org/manual.html log4j : slf4j-api -> org.slf4j:slf4j-log4j12, log4j:log4j log4j2 : slf4j-api -> org.apache.logging.log4j:(log4j-slf4j-impl, log4j-api, log4j-core) logback: slf4j-api -> ch.qos.logback:(logback-classic, logback-core) jcl : slf4j-api -> org.slf4j:slf4j-jcl, commons-logging:commons-logging jul : slf4j-api -> org.slf4j:slf4j-jdk14, java.util.logging log api bridge to slf4j:http://www.slf4j.org/legacy.html log4j : log4j-over-slf4j(log4j api) -> slf4j-api -> LogImpl log4j2 : log4j-to-slf4j (log4j2 api) -> slf4j-api -> LogImpl logback : logback就是slf4j的原生实现(即logback的api就是slf4j-api) commons-logging : jcl-over-slf4j (jcl api) -> slf4j-api -> LogImpl java.util.logging: jul-to-slf4j (jul api) -> slf4j-api -> LogImpl(SLF4JBridgeHandler.removeHandlersForRootLogger();SLF4JBridgeHandler.install();) osgi : osgi-over-slf4j (osgi api) —> slf4j-api -> LogImpl(将osgi环境下的日志,桥接到slf4j) --> <name>Commons core</name> <description>A commons tool java lib</description> <url>https://github.com/ponfee/commons-core</url> <licenses> <license> <name>The Apache Software License, Version 2.0</name> <url>https://www.apache.org/licenses/LICENSE-2.0.txt</url> </license> </licenses> <developers> <developer> <name>Ponfee</name> <email>ponfee.cn@gmail.com</email> <organization>ponfee.cn</organization> <organizationUrl>http://www.ponfee.cn/</organizationUrl> </developer> </developers> <scm> <connection>scm:git:https://github.com/ponfee/commons-core.git</connection> <developerConnection>scm:git:https://github.com/ponfee/commons-core.git</developerConnection> <url>https://github.com/ponfee/commons-core</url> <tag>HEAD</tag> </scm> <!-- 根据version中是否带有“-SNAPSHOT”来判断是分发到snapshots库还是releases库 --> <distributionManagement> <!-- 添加到maven的安装目录的settings.xml中 <servers> <server> <id>ossrh</id> <username>username</username> <password>password</password> </server> </servers> --> <snapshotRepository> <id>ossrh</id> <url>https://s01.oss.sonatype.org/content/repositories/snapshots/</url> </snapshotRepository> <repository> <id>ossrh</id> <url>https://s01.oss.sonatype.org/service/local/staging/deploy/maven2/</url> </repository> </distributionManagement> <properties> <file.encoding>UTF-8</file.encoding> <project.build.sourceEncoding>${file.encoding}</project.build.sourceEncoding> <project.reporting.outputEncoding>${file.encoding}</project.reporting.outputEncoding> <java.version>1.8</java.version> <maven.compiler.source>${java.version}</maven.compiler.source> <maven.compiler.target>${java.version}</maven.compiler.target> <maven.compiler.compilerVersion>${java.version}</maven.compiler.compilerVersion> <spring-framework.version>5.3.24</spring-framework.version> <slf4j.version>1.7.36</slf4j.version> <log4j2.version>2.19.0</log4j2.version> <bouncycastle.version>1.72</bouncycastle.version> <jackson.version>2.14.1</jackson.version> </properties> <profiles> <!-- 1、查看处于激活状态的profile:mvn help:active-profiles 2、查看计算机上的这些OS属性:mvn enforcer:display-info 3、查看系统属性:mvn help:system | grep "os\." --> <profile> <id>unix</id> <activation> <os><family>unix</family></os> </activation> <properties> <system.separator>:</system.separator> </properties> </profile> <profile> <id>windows</id> <activation> <os><family>windows</family></os> </activation> <properties> <system.separator>;</system.separator> </properties> </profile> <profile> <!-- mvn clean package -Pdevelop --> <id>develop</id> <!--<activation>前面加了OS的profile后,此处的默认设置无效 <activeByDefault>true</activeByDefault> </activation>--> <properties> </properties> </profile> <profile> <!-- mvn clean deploy -Prelease --> <id>release</id> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-gpg-plugin</artifactId> <version>3.0.1</version> <executions> <execution> <id>sign-artifacts</id> <phase>verify</phase> <goals> <goal>sign</goal> </goals> </execution> </executions> </plugin> </plugins> </build> </profile> </profiles> <dependencyManagement> <dependencies> <dependency> <groupId>org.apache.tika</groupId> <artifactId>tika-bom</artifactId> <version>2.6.0</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement> <dependencies> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.18.24</version> <optional>true</optional> <scope>provided</scope> </dependency> <!-- ==============================logger============================== --> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> <version>${slf4j.version}</version> </dependency> <!-- adapter to slf4j-api --> <dependency> <groupId>org.slf4j</groupId> <artifactId>jcl-over-slf4j</artifactId> <version>${slf4j.version}</version> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>jul-to-slf4j</artifactId> <version>${slf4j.version}</version> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>log4j-over-slf4j</artifactId> <version>${slf4j.version}</version> </dependency> <!-- log4j2:当使用log4j2为日志实现时,需注释此依赖项 --> <!-- <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-to-slf4j</artifactId> <version>${log4j2.version}</version> </dependency> --> <!-- 具体的日志实现 --> <!-- logback为日志实现:logback.xml --> <!-- <dependency> <groupId>ch.qos.logback</groupId> <artifactId>logback-classic</artifactId> <version>1.2.3</version> <scope>runtime</scope> </dependency> --> <!-- log4j为日志实现:log4j.properties --> <!-- <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> <version>${slf4j.version}</version> </dependency> <dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>1.2.17</version> </dependency> --> <!-- log4j2为日志实现:log4j2.xml --> <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-slf4j-impl</artifactId> <version>${log4j2.version}</version> <scope>runtime</scope> </dependency> <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-web</artifactId> <version>${log4j2.version}</version> <scope>runtime</scope> </dependency> <!-- <context-param> web.xml自定义配置文件的位置 <param-name>log4jConfiguration</param-name> <param-value>/WEB-INF/classes/log4j2.xml</param-value> </context-param> --> <!-- commons-logging桥接到Log4j2 --> <!-- <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-jcl</artifactId> <version>${log4j2.version}</version> </dependency> --> <!-- java.util.logging桥接到Log4j2 --> <!-- <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-jul</artifactId> <version>${log4j2.version}</version> </dependency> --> <!-- ====================logger==================== --> <!-- commons --> <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-lang3</artifactId> <version>3.12.0</version> </dependency> <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-text</artifactId> <version>1.10.0</version> </dependency> <dependency> <groupId>commons-io</groupId> <artifactId>commons-io</artifactId> <version>2.11.0</version> </dependency> <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-collections4</artifactId> <version>4.4</version> </dependency> <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-math3</artifactId> <version>3.6.1</version> </dependency> <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-pool2</artifactId> <version>2.11.1</version> </dependency> <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-csv</artifactId> <version>1.9.0</version> </dependency> <dependency> <groupId>org.dom4j</groupId> <artifactId>dom4j</artifactId> <version>2.1.3</version> </dependency> <dependency> <groupId>com.google.guava</groupId> <artifactId>guava</artifactId> <version>31.1-jre</version> </dependency> <dependency> <groupId>joda-time</groupId> <artifactId>joda-time</artifactId> <version>2.10.13</version> </dependency> <dependency> <groupId>net.lingala.zip4j</groupId> <artifactId>zip4j</artifactId> <version>2.11.2</version> </dependency> <dependency> <groupId>org.apache.tika</groupId> <artifactId>tika-parsers-standard-package</artifactId> <exclusions> <exclusion> <groupId>commons-logging</groupId> <artifactId>commons-logging</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>org.apache.tika</groupId> <artifactId>tika-core</artifactId> </dependency> <dependency> <groupId>com.itextpdf</groupId> <artifactId>itextpdf</artifactId> <version>5.5.13.3</version> </dependency> <dependency> <groupId>javax.money</groupId> <artifactId>money-api</artifactId> <version>1.1</version> <optional>true</optional> </dependency> <dependency> <groupId>org.javamoney</groupId> <artifactId>moneta</artifactId> <version>1.4.2</version> <type>pom</type> <optional>true</optional> </dependency> <!-- jakarta(当前版本是“javax”的包名空间,再往上升级版本就是“jakarta”包名空间) --> <dependency> <groupId>jakarta.servlet</groupId> <artifactId>jakarta.servlet-api</artifactId> <version>4.0.4</version> <optional>true</optional> <scope>provided</scope> </dependency> <dependency> <groupId>jakarta.annotation</groupId> <artifactId>jakarta.annotation-api</artifactId> <version>1.3.5</version> </dependency> <dependency> <groupId>jakarta.validation</groupId> <artifactId>jakarta.validation-api</artifactId> <version>2.0.2</version> </dependency> <dependency> <groupId>org.hibernate.validator</groupId> <artifactId>hibernate-validator</artifactId> <version>6.2.5.Final</version> </dependency> <!-- ====================spring==================== --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-core</artifactId> <version>${spring-framework.version}</version> <exclusions> <exclusion> <groupId>commons-logging</groupId> <artifactId>commons-logging</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context-support</artifactId> <version>${spring-framework.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-web</artifactId> <version>${spring-framework.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-aspects</artifactId> <version>${spring-framework.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-jdbc</artifactId> <version>${spring-framework.version}</version> </dependency> <!-- ====================excel poi==================== --> <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi-ooxml</artifactId> <version>5.2.3</version> <exclusions> <exclusion> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-api</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>com.monitorjbl</groupId> <artifactId>xlsx-streamer</artifactId> <version>2.2.0</version> <exclusions> <exclusion> <groupId>org.apache.poi</groupId> <artifactId>*</artifactId> </exclusion> <exclusion> <groupId>org.slf4j</groupId> <artifactId>*</artifactId> </exclusion> <exclusion> <groupId>org.apache.logging.log4j</groupId> <artifactId>*</artifactId> </exclusion> </exclusions> </dependency> <!-- ====================序列化==================== --> <dependency> <groupId>com.esotericsoftware</groupId> <artifactId>kryo</artifactId> <version>5.3.0</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>${jackson.version}</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.datatype</groupId> <artifactId>jackson-datatype-jsr310</artifactId> <version>${jackson.version}</version> </dependency> <dependency> <groupId>com.caucho</groupId> <artifactId>hessian</artifactId> <version>4.0.66</version> </dependency> <dependency> <groupId>de.ruedigermoeller</groupId> <artifactId>fst</artifactId> <version>2.57</version> <exclusions> <exclusion> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-core</artifactId> </exclusion> <exclusion> <groupId>org.objenesis</groupId> <artifactId>objenesis</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>io.protostuff</groupId> <artifactId>protostuff-runtime</artifactId> <version>1.8.0</version> </dependency> <dependency> <groupId>io.protostuff</groupId> <artifactId>protostuff-core</artifactId> <version>1.8.0</version> </dependency> <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.83</version> </dependency> <!-- ====================mybatis==================== --> <dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> <version>1.2.15</version> <optional>true</optional> </dependency> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.5.11</version> </dependency> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis-spring</artifactId> <version>2.1.0</version> </dependency> <dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper</artifactId> <version>5.3.2</version> </dependency> <!-- ====================加解密==================== --> <dependency> <groupId>org.bouncycastle</groupId> <artifactId>bcmail-jdk18on</artifactId> <version>${bouncycastle.version}</version> </dependency> <dependency> <groupId>org.bouncycastle</groupId> <artifactId>bcpg-jdk18on</artifactId> <version>${bouncycastle.version}</version> </dependency> <dependency> <groupId>org.bouncycastle</groupId> <artifactId>bctls-jdk18on</artifactId> <version>${bouncycastle.version}</version> </dependency> <dependency> <groupId>org.bouncycastle</groupId> <artifactId>bcprov-ext-jdk18on</artifactId> <version>${bouncycastle.version}</version> </dependency> <dependency> <groupId>commons-codec</groupId> <artifactId>commons-codec</artifactId> <version>1.15</version> </dependency> <!-- ====================test==================== --> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.13.2</version> <scope>test</scope> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-test</artifactId> <version>${spring-framework.version}</version> <scope>test</scope> </dependency> <dependency> <groupId>org.zeroturnaround</groupId> <artifactId>zt-zip</artifactId> <version>1.14</version> <scope>test</scope> <type>jar</type> <exclusions> <exclusion> <groupId>org.slf4j</groupId> <artifactId>*</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>org.jsoup</groupId> <artifactId>jsoup</artifactId> <version>1.13.1</version> <scope>test</scope> </dependency> <dependency> <groupId>com.lmax</groupId> <artifactId>disruptor</artifactId> <version>3.4.2</version> <scope>test</scope> </dependency> <dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>httpclient</artifactId> <version>4.5.14</version> <scope>test</scope> <exclusions> <exclusion> <groupId>commons-logging</groupId> <artifactId>commons-logging</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>org.testng</groupId> <artifactId>testng</artifactId> <version>6.14.3</version> <scope>test</scope> </dependency> <dependency> <groupId>com.google.protobuf</groupId> <artifactId>protobuf-java</artifactId> <version>3.11.4</version> <scope>test</scope> </dependency> <dependency> <groupId>com.alibaba</groupId> <artifactId>transmittable-thread-local</artifactId> <version>2.11.4</version> <scope>test</scope> </dependency> <!-- 密码哈希处理 --> <dependency> <groupId>de.mkammerer</groupId> <artifactId>argon2-jvm</artifactId> <version>2.6</version> <scope>test</scope> </dependency> <!-- Java Object Layout --> <dependency> <groupId>org.openjdk.jol</groupId> <artifactId>jol-core</artifactId> <version>0.16</version> <scope>test</scope> </dependency> <!-- 二维码生成 --> <!-- <dependency> <groupId>com.github.kenglxn.QRGen</groupId> <artifactId>javase</artifactId> <version>2.6.0</version> <scope>test</scope> </dependency> --> <dependency> <groupId>com.beust</groupId> <artifactId>jcommander</artifactId> <version>1.82</version> <scope>test</scope> </dependency> <dependency> <groupId>info.picocli</groupId> <artifactId>picocli</artifactId> <version>4.7.0</version> <scope>test</scope> </dependency> </dependencies> <!-- 1、“https://repo1.maven.org/maven2”与“https://repo.maven.apache.org/maven2”是同一个仓库(central,即mavenCentral) 2、central是在“$MAVEN_HOME/lib/maven-model-builder.jar!/org/apache/maven/model/pom-4.0.0.xml”中配置的 3、aliyun central+jcenter的聚合镜像仓(jcenter 2022-02-01开始停用不再支持下载):https://maven.aliyun.com/repository/public 4、aliyun maven文档:https://developer.aliyun.com/mvn/guide 5、mvn repository地址:https://mvnrepository.com/ 6、中央仓库搜索地址:https://central.sonatype.com/ --> <!-- <repositories> <repository> <id>central</id> <url>https://repo.maven.apache.org/maven2</url> </repository> </repositories> --> <build> <finalName>${project.artifactId}-${project.version}</finalName> <resources> <resource> <directory>src/main/resources</directory> <!-- filtering用于替换资源文件(*.xml、*.properties)中的占位符(${...}) --> <!-- https://blog.csdn.net/luckyzhoustar/article/details/50411962 --> <filtering>false</filtering> </resource> <resource> <directory>src/main/java</directory> <filtering>false</filtering> <excludes> <exclude>**/*.java</exclude> </excludes> </resource> </resources> <testResources> <testResource> <directory>src/test/resources</directory> <filtering>false</filtering> </testResource> </testResources> <plugins> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>versions-maven-plugin</artifactId> <version>2.13.0</version> <configuration> <generateBackupPoms>false</generateBackupPoms> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-resources-plugin</artifactId> <version>3.2.0</version> <configuration> <encoding>${file.encoding}</encoding> </configuration> </plugin> <plugin> <!-- http://maven.apache.org/plugins/maven-compiler-plugin/compile-mojo.html --> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.10.1</version> <configuration> <source>${maven.compiler.source}</source> <target>${maven.compiler.target}</target> <compilerVersion>${maven.compiler.compilerVersion}</compilerVersion> <encoding>${file.encoding}</encoding> <showDeprecation>true</showDeprecation> <showWarnings>true</showWarnings> <!-- <fork>true</fork> 乱码 --> <!--<compilerArgument>-Xlint:unchecked,deprecation</compilerArgument>--> <!-- <compilerArgument>-verbose -parameters -bootclasspath ${java.home}\lib\rt.jar</compilerArgument> --> <compilerArgs> <arg>-bootclasspath</arg> <!-- windows用“;”号分隔;linux用“:”号分隔;${JAVA_HOME}/lib/tools.jar; --> <arg>${java.home}/lib/rt.jar${system.separator}${java.home}/lib/jce.jar${system.separator}${java.home}/lib/jsse.jar</arg> <arg>-parameters</arg> <arg>-Xlint:unchecked,deprecation</arg> </compilerArgs> <excludes> <exclude>node_modules/**</exclude> </excludes> <!--<debug>false</debug> <debuglevel>none</debuglevel> <skipMain>true</skipMain>--> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-source-plugin</artifactId> <version>3.2.1</version> <executions> <execution> <id>attach-sources</id> <phase>verify</phase> <goals> <goal>jar-no-fork</goal> </goals> </execution> </executions> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-javadoc-plugin</artifactId> <version>3.4.1</version> <executions> <execution> <id>attach-javadocs</id> <goals> <goal>jar</goal> </goals> </execution> </executions> <configuration> <doclint>none</doclint> </configuration> </plugin> <!-- http://wvengen.github.io/proguard-maven-plugin https://github.com/wvengen/proguard-maven-plugin https://blog.csdn.net/xiao190128/article/details/81777912 --> <!-- <plugin> <groupId>com.github.wvengen</groupId> <artifactId>proguard-maven-plugin</artifactId> <version>2.6.0</version> <executions> <execution> <phase>package</phase> <goals> <goal>proguard</goal> </goals> </execution> </executions> <configuration> <obfuscate>true</obfuscate> <addMavenDescriptor>false</addMavenDescriptor> <inFilter>!application.properties</inFilter> <injarNotExistsSkip>true</injarNotExistsSkip> <injar>classes</injar> <attach>false</attach> <outjar>${project.build.finalName}-proguard.jar</outjar> <!—— <injar>${project.build.finalName}.jar</injar> <attach>true</attach> <attachArtifactClassifier>proguard</attachArtifactClassifier> <attachArtifactType>jar</attachArtifactType> ——> <outputDirectory>${project.build.directory}</outputDirectory> <libs> <lib>${java.home}/lib/rt.jar</lib> <lib>${java.home}/lib/jce.jar</lib> <lib>${java.home}/lib/jsse.jar</lib> </libs> <options> <option>-target ${java.version}</option> <option>-ignorewarnings</option> <option>-dontshrink</option> <option>-dontoptimize</option> <option>-dontskipnonpubliclibraryclasses</option> <option>-dontskipnonpubliclibraryclassmembers</option> <option>-keeppackagenames</option> <option><![CDATA[-keep class * {*;}]]></option> </options> </configuration> <dependencies> <dependency> <groupId>net.sf.proguard</groupId> <artifactId>proguard-base</artifactId> <version>6.2.2</version> </dependency> </dependencies> </plugin> --> <!-- http://maven.apache.org/plugins/maven-assembly-plugin/single-mojo.html --> <!-- <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-assembly-plugin</artifactId> <version>3.1.1</version> <configuration> <appendAssemblyId>false</appendAssemblyId> <descriptorRefs> <descriptorRef>jar-with-dependencies</descriptorRef> </descriptorRefs> <archive> <manifest> <mainClass>cn.ponfee.Main</mainClass> </manifest> </archive> </configuration> <executions> <execution> <id>make-assembly</id> <phase>package</phase> <goals> <goal>single</goal> </goals> <configuration> <finalName>${project.artifactId}</finalName> <skipAssembly>false</skipAssembly> <descriptors> <descriptor>src/main/assembly/assembly.xml</descriptor> </descriptors> </configuration> </execution> </executions> </plugin> --> <!-- https://blog.csdn.net/u011499747/article/details/83045928 http://maven.apache.org/plugins/maven-shade-plugin/shade-mojo.html maven-jar-plugin: maven-assembly-plugin: mvn assembly:assembly maven-shade-plugin: mvn clean package --> <!-- <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-shade-plugin</artifactId> <version>3.2.1</version> <executions> <execution> <phase>package</phase> <goals> <goal>shade</goal> </goals> <configuration> <transformers> <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer"> <mainClass>cn.ponfee.Main</mainClass> </transformer> </transformers> <createSourcesJar>true</createSourcesJar> <artifactSet> <includes> <include>${project.groupId}:*:*</include> </includes> <excludes> <!—— log jar file provide by flink ——> <exclude>org.slf4j:*</exclude> <exclude>log4j:*</exclude> </excludes> </artifactSet> <filters> <filter> <artifact>*:*</artifact> <excludes> <exclude>META-INF/*.SF</exclude> <exclude>META-INF/*.DSA</exclude> <exclude>META-INF/*.RSA</exclude> <!—— log conf file provide by flink ——> <exclude>log4j2.xml</exclude> </excludes> </filter> </filters> </configuration> </execution> </executions> </plugin> --> <!-- package jar --> <!-- <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> <version>3.1.2</version> <configuration> <archive> <manifest> <addClasspath>true</addClasspath> <classpathPrefix>lib/</classpathPrefix> <mainClass>cn.ponfee.Main</mainClass> </manifest> </archive> </configuration> <executions> <execution> <id>make-a-jar</id> <phase>compile</phase> <goals> <goal>jar</goal> </goals> </execution> </executions> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-dependency-plugin</artifactId> <executions> <execution> <id>copy</id> <phase>compile</phase> <goals> <goal>copy-dependencies</goal> </goals> <configuration> <outputDirectory> ${project.build.directory}/lib </outputDirectory> </configuration> </execution> </executions> </plugin> --> <!-- <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-war-plugin</artifactId> <version>3.2.3</version> <configuration> <!—— warSourceExcludes是在编译完成后从warSourceDirectory目录复制文件时忽略, packagingExcludes是在从target/${artifactId}-${version}目录打包时忽略 ——> <!—— <warSourceDirectory>src/main/webapp | WebRoot | WebContent</warSourceDirectory> <warSourceExcludes>page/**,js/**,css/**,imgs/**</warSourceExcludes> ——> <warSourceIncludes>WEB-INF/lib/**,WEB-INF/web.xml,WEB-INF/mvc-config.xml,WEB-INF/jetty-web.xml</warSourceIncludes> <!—— packagingExcludes在warSourceExcludes后面执行:排除src/main/resources或从远程仓库pull下来的 <packagingExcludes>WEB-INF/classes/logback.xml,WEB-INF/lib/commons-logging-*.jar,%regex[WEB-INF/lib/log4j-(?!over-slf4j).*.jar]</packagingExcludes> <packagingIncludes></packagingIncludes> ——> <failOnMissingWebXml>true</failOnMissingWebXml> </configuration> </plugin> --> </plugins> </build> </project>