04-Hands-on

1. jar冲突

1. 国密冲突

<!-- 本质上是下面两个依赖jar包冲突 -->
<dependency>
    <groupId>org.bouncycastle</groupId>
    <artifactId>bcprov-jdk16</artifactId>
    <version>1.46</version>
</dependency>

<dependency>
    <groupId>org.bouncycastle</groupId>
    <artifactId>bcprov-jdk15to18</artifactId>
    <version>1.69</version>
</dependency>

2. maven-shade-plugin

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-shade-plugin</artifactId>
    <version>2.2</version>
    <configuration>
        <filters>
            <filter>
                <artifact>*:*</artifact>
                <excludes>
                    <exclude>META-INF/*.SF</exclude>
                    <exclude>META-INF/*.DSA</exclude>
                    <exclude>META-INF/*.RSA</exclude>
                </excludes>
            </filter>
        </filters>
    </configuration>
</plugin>
  • 或者将报错的jar包解压,然后删除META-INF的目录下的*.SF,*.DSA,*.RSA文件,然后再打包即可
<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-shade-plugin</artifactId>
    <version>3.0.0</version>
    <executions>
        <execution>
            <phase>package</phase>
            <goals>
                <goal>shade</goal>
            </goals>
            <configuration>
                <transformers>
                    <transformer
                            implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
                        <mainClass>Main</mainClass>
                    </transformer>
                </transformers>
                <relocations>
                    <relocation>
                        <pattern>com.google.protobuf</pattern>
                        <shadedPattern>shaded.protobuf</shadedPattern>
                    </relocation>
                    <relocation>
                        <pattern>org.bouncycastle</pattern>
                        <shadedPattern>com.listao.list.shade.org.bouncycastle</shadedPattern>
                    </relocation>
                    <relocation>
                        <pattern>com.sgitg</pattern>
                        <shadedPattern>com.listao.list.shade.com.sgitg</shadedPattern>
                    </relocation>
                </relocations>

                <filters>
                    <filter>
                        <artifact>*:*</artifact>
                        <excludes>
                            <exclude>META-INF/*.SF</exclude>
                            <exclude>META-INF/*.DSA</exclude>
                            <exclude>META-INF/*.RSA</exclude>
                        </excludes>
                    </filter>
                </filters>
            </configuration>
        </execution>
    </executions>
</plugin>

2. idea

1. refresh

ZlF1QitJRGllb3hOaTRTMjFaTGFFMmNHUjBHRWJWWlA5WnR6R3BNPQ==

2. 打包失败

  • 发现打包失败后,一个一个模块进行package,找出每一个模块的问题,进行解决。然后再一起打包
[ERROR] Failed to execute goal on project bills-service: Could not resolve dependencies for project com.qsqx:bills-service:jar:0.0.1-SNAPSHOT: Failed to collect dependencies at com.jd.jr.eprd.sdk:eprd_sd
k:jar:1.3.4: Failed to read artifact descriptor for com.jd.jr.eprd.sdk:eprd_sdk:jar:1.3.4: Could not transfer artifact com.jd.jr.eprd.sdk:eprd_sdk:pom:1.3.4 from/to central_prod (http://mvn.test.alipay.n
et:8080/artifactory/repo): mvn.test.alipay.net: Unknown host mvn.test.alipay.net -> [Help 1]

3. 传递问题

  • service <= client <= model
  • service依赖了client,client依赖了model
  • serivce不能直接跳到model层里的对象,跳到model层里的.class