maven多模塊打包時,需要打包的模塊依賴於其他模塊,如果直接打包想要打包的模塊時會報依賴找不到錯誤。
現在有兩種方法可以打包完成
- 打包父工程pom, 如 `mvn clean package -DskipTests -Pdev -f pom.xml` ,這樣可以打包完成,但是會將所有的子模塊全部都打包,消耗的時間會很長。
- 我們只想打包指定的模塊,並且附帶打包這個模塊相應的一些依賴模塊就好,那就需要一個額外的新的pom文件來配置,某模塊打包時需要依賴的別的模塊信息配置到pom中,然后打包時使用這個新的pom文件進行打包即可
如下:打包 esign-service
mvn clean package -DskipTests -Pdev -f pkg-esign-service.pom.xml
pom.xml
<?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.otc.jeqian</groupId>
<artifactId>otc-jeqian</artifactId>
<version>1.0</version>
<modules>
<module>otc-jeqian-common</module>
<module>otc-jeqian-test</module>
<module>otc-jeqian-file-client</module>
<module>otc-jeqian-esign-web</module>
<module>otc-jeqian-esign-service</module>
<module>otc-jeqian-esign-api</module>
<module>otc-jeqian-workflow</module>
<module>otc-jeqian-stream</module>
<module>otc-jeqian-sys-web</module>
</modules>
<packaging>pom</packaging>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<spring-boot.version>2.2.2.RELEASE</spring-boot.version>
<pdfbox.version>2.0.24</pdfbox.version>
<commons-io.version>2.2</commons-io.version>
<commons-long3.version>3.4</commons-long3.version>
<commons-codec.version>1.10</commons-codec.version>
<dubbo-starter.version>2.7.8</dubbo-starter.version>
<lombok.version>1.18.12</lombok.version>
<shiro-spring.version>1.7.1</shiro-spring.version>
<jwt.version>3.10.3</jwt.version>
<swagger2.version>2.7.0</swagger2.version>
<ES.transport.version>7.10.2</ES.transport.version>
<mybatis-plus.version>3.4.3.4</mybatis-plus.version>
</properties>
<profiles>
<profile>
<id>dev</id>
<properties>
<spring.profiles.active>dev</spring.profiles.active>
<minio.url>http://192.168.31.51:9000</minio.url>
<minio.access-key>ycq</minio.access-key>
<minio.secret-key>ycq123456</minio.secret-key>
<minio.buckets>images</minio.buckets>
<dubbo.registry.address>zookeeper://192.168.31.51:2181</dubbo.registry.address>
<kafka.bootstrap.servers>192.168.31.51:9092</kafka.bootstrap.servers>
<redis.host>192.168.31.51</redis.host>
<redis.password>q1w2e3r4</redis.password>
</properties>
</profile>
</profiles>
<dependencyManagement>
<dependencies>
<!-- spring boot jar包版本管理-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>${spring-boot.version}</version>
<scope>import</scope>
<type>pom</type>
</dependency>
<!--pdf操作相關-->
<dependency>
<groupId>org.apache.pdfbox</groupId>
<artifactId>pdfbox</artifactId>
<version>${pdfbox.version}</version>
</dependency>
<!-- itext -->
<dependency>
<groupId>com.itextpdf</groupId>
<artifactId>itext7-core</artifactId>
<version>7.2.0</version>
<type>pom</type>
</dependency>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>${commons-io.version}</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>${commons-long3.version}</version>
</dependency>
<dependency>
<groupId>commons-codec</groupId>
<artifactId>commons-codec</artifactId>
<version>${commons-codec.version}</version>
</dependency>
<!-- dubbo-->
<dependency>
<groupId>org.apache.dubbo</groupId>
<artifactId>dubbo-spring-boot-starter</artifactId>
<version>${dubbo-starter.version}</version>
</dependency>
<!-- curator-recipes -->
<dependency>
<groupId>org.apache.curator</groupId>
<artifactId>curator-recipes</artifactId>
<version>4.0.1</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>${lombok.version}</version>
<scope>provided</scope>
</dependency>
<!-- shiro -->
<dependency>
<groupId>org.apache.shiro</groupId>
<artifactId>shiro-spring</artifactId>
<version>${shiro-spring.version}</version>
</dependency>
<!-- java-jwt -->
<dependency>
<groupId>com.auth0</groupId>
<artifactId>java-jwt</artifactId>
<version>${jwt.version}</version>
</dependency>
<!-- 二維碼生成相關-->
<dependency>
<groupId>com.google.zxing</groupId>
<artifactId>core</artifactId>
<version>3.1.0</version>
</dependency>
<dependency>
<groupId>com.google.zxing</groupId>
<artifactId>javase</artifactId>
<version>3.1.0</version>
</dependency>
<!-- transport -->
<dependency>
<groupId>org.elasticsearch.client</groupId>
<artifactId>transport</artifactId>
<version>${ES.transport.version}</version>
</dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>${mybatis-plus.version}</version>
</dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-annotation</artifactId>
<version>3.4.3.4</version>
</dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-extension</artifactId>
<version>3.4.3.4</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>1.2.8</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.12</version>
</dependency>
<!-- spring-boot-starter-data-redis -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
<version>${spring-boot.version}</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-amqp</artifactId>
<version>${spring-boot.version}</version>
</dependency>
<dependency>
<groupId>freemarker</groupId>
<artifactId>freemarker</artifactId>
<version>2.3.2</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context-support</artifactId>
<version>5.2.0.RELEASE</version>
</dependency>
<!-- sentinel-core -->
<dependency>
<groupId>com.alibaba.csp</groupId>
<artifactId>sentinel-core</artifactId>
<version>1.8.1</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-quartz -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-quartz</artifactId>
<version>${spring-boot.version}</version>
</dependency>
<dependency>
<groupId>io.minio</groupId>
<artifactId>minio</artifactId>
<version>6.0.4</version>
</dependency>
<dependency>
<groupId>com.github.danielwegener</groupId>
<artifactId>logback-kafka-appender</artifactId>
<version>0.1.0</version>
</dependency>
<dependency>
<groupId>net.logstash.logback</groupId>
<artifactId>logstash-logback-encoder</artifactId>
<version>4.11</version>
</dependency>
<dependency>
<groupId>org.flowable</groupId>
<artifactId>flowable-spring-boot-starter</artifactId>
<version>6.7.0</version>
</dependency>
<dependency>
<groupId>javax.validation</groupId>
<artifactId>validation-api</artifactId>
<version>2.0.0.Final</version>
</dependency>
<dependency>
<groupId>org.hibernate.validator</groupId>
<artifactId>hibernate-validator</artifactId>
<version>6.0.1.Final</version>
</dependency>
<!-- 郵件發送包 -->
<dependency>
<groupId>com.sun.mail</groupId>
<artifactId>javax.mail</artifactId>
<version>1.6.2</version>
</dependency>
</dependencies>
</dependencyManagement>
<build>
<resources>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**/*</include>
</includes>
<excludes>
<exclude>**/*.pdf</exclude>
</excludes>
<filtering>true</filtering>
</resource>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**/*.pdf</include>
</includes>
<filtering>false</filtering>
</resource>
</resources>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>
<configuration>
<target>1.8</target>
<source>1.8</source>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
</plugins>
</build>
</project>
pkg-esign-server.pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0">
<modelVersion>4.0.0</modelVersion>
<!-- artifactId的值不要和別的pom重復 -->
<artifactId>pkg-esign-service</artifactId>
<packaging>pom</packaging>
<!-- 需要依賴的父工程 -->
<parent>
<groupId>cn.otc.jeqian</groupId>
<artifactId>otc-jeqian</artifactId>
<version>1.0</version>
<!-- 父工程pom文件所在的目錄 -->
<relativePath>./</relativePath>
</parent>
<!-- 下面是需要打包的模塊,按順序從上到下打包 -->
<modules>
<module>otc-jeqian-common</module>
<module>otc-jeqian-esign-api</module>
<module>otc-jeqian-workflow/otc-jeqian-workflow-api</module>
<module>otc-jeqian-file-client/otc-jeqian-file-client-api</module>
<module>otc-jeqian-file-client/otc-jeqian-file-client-minio</module>
<module>otc-jeqian-esign-service</module>
</modules>
</project>