<dependencySets>无法使用
时间: 2023-12-03 07:03:22 浏览: 26
如果`<dependencySets>`无法使用的话,可以使用`<moduleSets>`元素代替,它的作用和`<dependencySets>`类似,也可以指定需要打包的依赖项,其中`<includes>`元素用于指定包含哪些依赖项。
下面是使用`<moduleSets>`元素将项目中libs目录下的jar包打入可执行的jar包中的一个示例:
```xml
<build>
<plugins>
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<version>3.3.0</version>
<configuration>
<archive>
<manifest>
<mainClass>com.example.Main</mainClass>
</manifest>
</archive>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
<moduleSets>
<moduleSet>
<binaries>
<includeDependencies>true</includeDependencies>
<outputDirectory>libs</outputDirectory>
<unpack>false</unpack>
<includes>
<include>**/*.jar</include>
</includes>
</binaries>
</moduleSet>
</moduleSets>
</configuration>
<executions>
<execution>
<id>make-assembly</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
```
上述配置中,`<moduleSets>`元素包含一个`<moduleSet>`子元素,它的`<binaries>`元素指定了需要打包的依赖项,`<outputDirectory>`元素指定了打包后libs目录中存放jar包的位置,`<includes>`元素指定了需要打包的所有jar包。执行`mvn package`命令后,会生成一个包含项目所有依赖的可执行jar包,并且在jar包的libs目录下包含了项目中libs目录下的所有jar包。