【发布时间】:2017-10-09 06:11:13
【问题描述】:
在尝试创建可分发存档时,我在使用 maven 程序集插件时遇到了问题。一切都是 工作正常,除了归档 lib 目录中缺少一些依赖项 jar。比如hamcrest-core.jar、xnio-nio-3.3.6.Final.jar、objenesis-2.5.jar等几个jar都没有加进去。有什么理由不加吗? 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>
【问题讨论】:
-
哪个范围有不包含的依赖项?在程序集文件中,您指出仅提供范围内的那些
-
这是范围测试。如何更改范围以将它们也包括在内?
-
您可以在范围测试中包含另一个dependencySet
标签: maven maven-3 maven-plugin