Maven 获取具体 类

Maven Get Specific Classes

在将依赖项导入 uber jar (shade) 时,有什么方法可以让 maven 仅包含特定的 .class 文件。我正在寻找一种方法来将名称中包含 "Client" 的文件从依赖项 jar 中拉出并添加到最终 jar 中。任何帮助都会很棒。

如果您正在使用 Maven Shade Plugin, you can a filter,这将允许您过滤哪些伪影被着色,以及排除或包含哪些 类。

这是他们提供的示例:

<filters>
  <filter>
    <artifact>junit:junit</artifact>
    <includes>
      <include>org/junit/**</include>
    </includes>
    <excludes>
      <exclude>org/junit/experimental/**</exclude>
    </excludes>
  </filter>
</filters>

您应该可以像这样使用 maven-dependency-plugin

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-dependency-plugin</artifactId>
            <version>2.10</version>
            <executions>
                <execution>
                    <id>unpack</id>
                    <phase>package</phase>
                    <goals>
                        <goal>unpack</goal>
                    </goals>
                    <configuration>
                        <artifactItems>
                            <artifactItem>
                                <groupId><!--dependency groupId--></groupId>
                                <artifactId><!--dependency artifactId--></artifactId>
                                <version><!--depedency version--></version>
                                <includes>**/*Client*.java</includes>
                            </artifactItem>
                        </artifactItems>
                    </configuration>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>