Java 如何将所有相关类自动收集到一个jar中(使用maven)?

Java 如何将所有相关类自动收集到一个jar中(使用maven)?,java,maven,jar,build,dependencies,Java,Maven,Jar,Build,Dependencies,我在packageA中有一个ClassA类,在packageB中有一个ClassA导入ClassB类。(事实上ClassA导入了很多java文件) 那么目录是: root pom.xml src packageA classA pom.xml packageB classB 我的目标是通过只

我在packageA中有一个ClassA类,在packageB中有一个ClassA导入ClassB类。(事实上ClassA导入了很多java文件)

那么目录是:

root
     pom.xml
     src 
             packageA
                      classA
                      pom.xml
             packageB
                      classB
我的目标是通过只告诉maven我输入了classA来生成包含classA和classB的jar

根目录中的pom.xml如下所示

<groupId>org.abc</groupId>
<artifactId>all-code</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>pom</packaging>
<modules>
    <module>\src\packageA</module>
</modules>
<name>helloworld</name>

<dependencies>
    <dependency>
    </dependency>
</dependencies>
<parent>
    <relativePath>..\..\</relativePath>
    <artifactId>all-code</artifactId>
    <groupId>org.abc</groupId>
    <version>0.0.1-SNAPSHOT</version>
</parent>
<artifactId>client-code</artifactId>
<packaging>jar</packaging>
<version>0.0.1-SNAPSHOT</version>
<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-jar-plugin</artifactId>
            <version>2.3.1</version>
            <executions>
                <execution>
                    <id>client</id>
                    <phase>package</phase>
                    <goals>
                        <goal>jar</goal>
                    </goals>
                    <configuration>
                        <classifier>client</classifier>
                        <includes>
                            <include>packageB\*</include>
                        </includes>
                    </configuration>
                </execution>
            </executions>
        </plugin>                               <!--it doesn't work-->
    </plugins>
    <sourceDirectory>.</sourceDirectory>        <!--it works-->
</build>
org.abc

我认为链接问题是为了实现提问者希望将外部jar包含到一个jar中。但是我想在一个jar中包含我自己的classB,而我只向maven输入classA,让maven找到classB,因为classA导入classB。

最后我自己编写了一个程序来解决这个问题


最后我自己写了一个程序来解决这个问题


可能重复@MrWiggles感谢您对这个问题的关注。但是在我尝试了链接的答案后,我发现它确实将所有外部jar包含在一个jar中。但是它没有导入我想要的类您是否将您的packageB作为依赖项包含在packageA中?@MrWiggles抱歉,我是maven的新手,我只知道如何将本地jar添加到依赖项。jar是的,我觉得我已经接近目标了。现在jar没有包含本地系统文件system path java source可能与@MrWiggles重复。谢谢你关注这个问题。但是在我尝试了链接的答案之后,我发现它确实将所有外部jar都包含在一个jar中。但是它没有导入我自己想要的类您是否将您的packageB作为依赖项包含在packageA中?@MrWiggles抱歉,我是maven的新手,我只知道如何将本地jar添加到依赖项中。jar是的,我觉得我已经接近目标了。现在jar不包括本地系统文件系统路径java源代码