Maven Assembly Plugin jar-with-dependencies - > Jar中没有依赖关系

时间:2016-09-02 12:51:34

标签: maven jar

以下引用提到了描述符引用jar-with-dependencies。 Afaik它是一个预定义的程序集,它将所有jar依赖项包含在一个大的自包含jar文件中。如果您有多个依赖项并且需要将项目复制到另一台计算机,这很好,因为您不需要单独更新/删除过时的库。 https://newfivefour.com/category_maven-assembly.html

我将maven-assembly-plugin添加到我的pom中,并创建了MyTool.jar-with-dependency.jar。我希望jar包含所有外部依赖项,但它与普通的MyTool.jar相同,并且不包含任何依赖项,如apache.commons或apache.logging。

重要的细节是依赖范围设置为provided。没有它,它按预期工作。但是我稍后使用范围maven-dependency-pluginprovided范围内的所有依赖项复制到特定目录。

[...]
    <dependency>
        <groupId>org.apache.logging.log4j</groupId>
        <artifactId>log4j-core</artifactId>
        <version>2.5</version>
        <scope>privided</scope>
    </dependency>
</dependencies>    
<build>
    <!--pluginManagement-->
        <plugins>
            <plugin> <!-- This is the plugin I added. -->
                <artifactId>maven-assembly-plugin</artifactId>
                <configuration>
                    <descriptorRefs>
                        <descriptorRef>jar-with-dependencies</descriptorRef>
                    </descriptorRefs>
                 </configuration>
                <executions>
                    <execution>
                        <id>make-assembly</id> 
                        <phase>package</phase> <!-- bind to the packaging phase -->
                        <goals>
                            <goal>single</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
[...]

我使用Apache Maven 2.2.1(rdebian-14)。

如何包含provided范围内的依赖项?或者还有其他解决方案吗?

0 个答案:

没有答案