Java 如何将所有相关类自动收集到一个jar中(使用maven)?
我在packageA中有一个ClassA类,在packageB中有一个ClassA导入ClassB类。(事实上ClassA导入了很多java文件) 那么目录是: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 我的目标是通过只
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源代码