<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> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.6.9</version> <relativePath/> <!-- lookup parent from repository --> </parent> <groupId>cc.smtweb</groupId> <artifactId>canal.deployer</artifactId> <version>1.1.5</version> <dependencies> <dependency> <groupId>com.alibaba.otter</groupId> <artifactId>canal.server</artifactId> <version>1.1.5</version> </dependency> <!-- 这里指定runtime的metrics provider--> <dependency> <groupId>com.alibaba.otter</groupId> <artifactId>canal.prometheus</artifactId> <version>1.1.5</version> <scope>runtime</scope> </dependency> <dependency> <groupId>com.alibaba.otter</groupId> <artifactId>connector.kafka</artifactId> <version>1.1.5</version> <exclusions> <exclusion> <artifactId>*</artifactId> <groupId>*</groupId> </exclusion> </exclusions> <classifier>jar-with-dependencies</classifier> <scope>provided</scope> </dependency> <dependency> <groupId>com.alibaba.otter</groupId> <artifactId>connector.rocketmq</artifactId> <version>1.1.5</version> <exclusions> <exclusion> <artifactId>*</artifactId> <groupId>*</groupId> </exclusion> </exclusions> <classifier>jar-with-dependencies</classifier> <scope>provided</scope> </dependency> <dependency> <groupId>com.alibaba.otter</groupId> <artifactId>connector.rabbitmq</artifactId> <version>1.1.5</version> <exclusions> <exclusion> <artifactId>*</artifactId> <groupId>*</groupId> </exclusion> </exclusions> <classifier>jar-with-dependencies</classifier> <scope>provided</scope> </dependency> <dependency> <groupId>cc.smtweb</groupId> <artifactId>sw-framework-core</artifactId> <version>3.1.0-SNAPSHOT</version> </dependency> </dependencies> <build> <plugins> <plugin> <artifactId>maven-jar-plugin</artifactId> <configuration> <archive> <addMavenDescriptor>true</addMavenDescriptor> </archive> <excludes> <exclude>**/logback.xml</exclude> <exclude>**/canal.properties</exclude> <exclude>**/spring/**</exclude> <exclude>**/example/**</exclude> <exclude>**/mq.yml</exclude> </excludes> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-dependency-plugin</artifactId> <version>2.10</version> <executions> <execution> <id>copy-dependencies-to-canal-deployer</id> <phase>package</phase> <goals> <goal>copy-dependencies</goal> </goals> <configuration> <includeClassifiers>jar-with-dependencies</includeClassifiers> <outputDirectory>${project.basedir}/target/canal-deployer/plugin</outputDirectory> </configuration> </execution> </executions> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-assembly-plugin</artifactId> <!-- 这是最新版本,推荐使用这个版本 --> <version>2.2.1</version> <executions> <execution> <id>assemble</id> <goals> <goal>single</goal> </goals> <phase>package</phase> </execution> </executions> <configuration> <appendAssemblyId>false</appendAssemblyId> <attach>false</attach> </configuration> </plugin> </plugins> </build> <profiles> <profile> <id>dev</id> <activation> <activeByDefault>true</activeByDefault> <property> <name>env</name> <value>!release</value> </property> </activation> <build> <plugins> <plugin> <artifactId>maven-assembly-plugin</artifactId> <configuration> <!-- maven assembly插件需要一个描述文件 来告诉插件包的结构以及打包所需的文件来自哪里 --> <descriptors> <descriptor>${basedir}/src/main/assembly/dev.xml</descriptor> </descriptors> <finalName>canal-deployer</finalName> <outputDirectory>${project.build.directory}</outputDirectory> </configuration> </plugin> </plugins> </build> </profile> <profile> <id>release</id> <activation> <property> <name>env</name> <value>release</value> </property> </activation> <build> <plugins> <plugin> <artifactId>maven-assembly-plugin</artifactId> <configuration> <!-- 发布模式使用的maven assembly插件描述文件 --> <descriptors> <descriptor>${basedir}/src/main/assembly/release.xml</descriptor> </descriptors> <!-- 如果一个应用的包含多个deploy模块,如果使用同样的包名, 如果把它们复制的一个目录中可能会失败,所以包名加了 artifactId以示区分 --> <finalName>${project.artifactId}-1.1.5</finalName> <!-- scm 要求 release 模式打出的包放到顶级目录下的target子目录中 --> <outputDirectory>${project.parent.build.directory}</outputDirectory> </configuration> </plugin> </plugins> </build> </profile> </profiles> <distributionManagement> <repository> <id>nexus-releases</id> <name>Nexus Release Repository</name> <url>http://47.92.149.153:7000/repository/maven-releases/</url> </repository> <snapshotRepository> <id>nexus-snapshots</id> <name>Nexus Snapshot Repository</name> <url>http://47.92.149.153:7000/repository/maven-snapshots/</url> </snapshotRepository> </distributionManagement> </project>