如何使用maven shade插件捆绑不同模块的类

问题描述 投票:0回答:1

我想生成一个包含'com.x'包和一个来自另一个包'com.y'的类(比方说,Utils.class)的jar。我可以将完整的包com.y捆绑在阴影的jar中,但我只想要一个类。它似乎与我下面的工作不一致。我也尝试过提供类的路径:combarclipolUtils.class,但没有任何效果。

   <dependencies>
      <dependency>
         <groupId>com.x</groupId>
         <artifactId>foo</artifactId>
      </dependency>
      <dependency>
         <groupId>com.y</groupId>
         <artifactId>bar</artifactId>
      </dependency>
   </dependencies>

   <build>
      <plugins>
         <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-shade-plugin</artifactId>
            <version>3.2.3</version>
            <executions>
               <execution>
                  <phase>package</phase>
                  <goals>
                     <goal>shade</goal>
                  </goals>
                  <configuration>
                     <artifactSet>
                        <includes>
                           <include>com.x:foo</include>
                           <include>com.y:bar:**/Utils.class</include>
                        </includes>
                     </artifactSet>
                  </configuration>
               </execution>
            </executions>
         </plugin>
      </plugins>
</build>
java maven maven-shade-plugin
1个回答
0
投票

我做了下面的工作。

<configuration>
<finalName>myshadedjar</finalName>
<artifactSet>
    <includes>
        <include>com.x:foo</include>
        <include>com.y:bar</include>
    </includes>
</artifactSet>
<filters>
    <filter>
        <artifact>com.y:bar</artifact>
        <includes>
            <include>com/bar/cli/pol/Utils.class</include>
        </includes>
    </filter>
</filters>

© www.soinside.com 2019 - 2024. All rights reserved.