缺少 Maven 程序集插件依赖项 jar
Maven assembly plugin dependency jars are missing
我在尝试创建可分发存档时使用 maven 程序集插件时遇到问题。一切都是
工作正常,除了存档 lib 目录中缺少一些依赖项 jar。例如 hamcrest-core.jar、xnio-nio-3.3.6.Final.jar、objenesis-2.5.jar 和其他一些罐子不 added.Is 没有任何理由不包括在内? maven-dependency-plugin 包括 target/lib 内的所有依赖 jar,没关系。
这是我 pom.xml
里面的东西
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>3.0.1</version>
<executions>
<execution>
<id>copy</id>
<phase>install</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
<configuration>
<outputDirectory>
${project.build.directory}/lib
</outputDirectory>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<groupId>org.apache.maven.plugins</groupId>
<version>3.1.0</version>
<executions>
<execution>
<id>online-store</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
<configuration>
<archive>
<manifest>
<addClasspath>true</addClasspath>
<classpathPrefix>lib/</classpathPrefix>
<mainClass>com.online.store.Main</mainClass>
</manifest>
</archive>
<appendAssemblyId>false</appendAssemblyId>
<descriptors>
<descriptor>src/assembly/assembly.xml</descriptor>
</descriptors>
</configuration>
</execution>
</executions>
</plugin>
这是我在 assembly.xml
中的内容
<assembly xmlns="http://maven.apache.org/ASSEMBLY/2.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/ASSEMBLY/2.0.0 http://maven.apache.org/xsd/assembly-2.0.0.xsd">
<id>online-store</id>
<formats>
<format>zip</format>
</formats>
<includeBaseDirectory>false</includeBaseDirectory>
<fileSets>
<!-- some file sets -->
</fileSets>
<dependencySets>
<dependencySet>
<scope>compile</scope>
<includes>
<include>*:jar:*</include>
</includes>
<outputDirectory>/online-store/lib</outputDirectory>
</dependencySet>
</dependencySets>
</assembly>
您可以在范围测试中包含另一个依赖集。
例如:
<assembly>
...
<dependencySets>
<dependencySet>
<scope>compile</scope>
<includes>
<include>*:jar:*</include>
</includes>
<outputDirectory>/online-store/lib</outputDirectory>
</dependencySet>
<dependencySet>
<scope>test</scope>
<includes>
<include>*:jar:*</include>
</includes>
<outputDirectory>/online-store/lib</outputDirectory>
</dependencySet>
</dependencySets>
</assembly>
我在尝试创建可分发存档时使用 maven 程序集插件时遇到问题。一切都是 工作正常,除了存档 lib 目录中缺少一些依赖项 jar。例如 hamcrest-core.jar、xnio-nio-3.3.6.Final.jar、objenesis-2.5.jar 和其他一些罐子不 added.Is 没有任何理由不包括在内? maven-dependency-plugin 包括 target/lib 内的所有依赖 jar,没关系。
这是我 pom.xml
里面的东西 <plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>3.0.1</version>
<executions>
<execution>
<id>copy</id>
<phase>install</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
<configuration>
<outputDirectory>
${project.build.directory}/lib
</outputDirectory>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<groupId>org.apache.maven.plugins</groupId>
<version>3.1.0</version>
<executions>
<execution>
<id>online-store</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
<configuration>
<archive>
<manifest>
<addClasspath>true</addClasspath>
<classpathPrefix>lib/</classpathPrefix>
<mainClass>com.online.store.Main</mainClass>
</manifest>
</archive>
<appendAssemblyId>false</appendAssemblyId>
<descriptors>
<descriptor>src/assembly/assembly.xml</descriptor>
</descriptors>
</configuration>
</execution>
</executions>
</plugin>
这是我在 assembly.xml
中的内容 <assembly xmlns="http://maven.apache.org/ASSEMBLY/2.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/ASSEMBLY/2.0.0 http://maven.apache.org/xsd/assembly-2.0.0.xsd">
<id>online-store</id>
<formats>
<format>zip</format>
</formats>
<includeBaseDirectory>false</includeBaseDirectory>
<fileSets>
<!-- some file sets -->
</fileSets>
<dependencySets>
<dependencySet>
<scope>compile</scope>
<includes>
<include>*:jar:*</include>
</includes>
<outputDirectory>/online-store/lib</outputDirectory>
</dependencySet>
</dependencySets>
</assembly>
您可以在范围测试中包含另一个依赖集。
例如:
<assembly>
...
<dependencySets>
<dependencySet>
<scope>compile</scope>
<includes>
<include>*:jar:*</include>
</includes>
<outputDirectory>/online-store/lib</outputDirectory>
</dependencySet>
<dependencySet>
<scope>test</scope>
<includes>
<include>*:jar:*</include>
</includes>
<outputDirectory>/online-store/lib</outputDirectory>
</dependencySet>
</dependencySets>
</assembly>