Как связать классы из разных модулей с помощью плагина Maven Shade - PullRequest
0 голосов
/ 30 апреля 2020

Я хотел бы сгенерировать jar, содержащий пакет 'com.x' и класс (скажем, Utils.class) из другого пакета 'com.y'. Я могу собрать весь пакет com.y в затененную банку, но я хочу только один класс. Это не похоже на работу у меня ниже. Я также попытался, указав путь к классу: com / bar / cli / pol / Utils.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>

1 Ответ

0 голосов
/ 03 мая 2020

Я получил эту работу, выполнив следующее:

<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>

...