maven多模塊打包pom模板


maven多模塊打包時,需要打包的模塊依賴於其他模塊,如果直接打包想要打包的模塊時會報依賴找不到錯誤。

現在有兩種方法可以打包完成

  1.  打包父工程pom, 如 `mvn clean package -DskipTests -Pdev -f pom.xml` ,這樣可以打包完成,但是會將所有的子模塊全部都打包,消耗的時間會很長。
  2. 我們只想打包指定的模塊,並且附帶打包這個模塊相應的一些依賴模塊就好,那就需要一個額外的新的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>

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM