Maven组装-独立的jar和依赖

时间:2018-12-10 09:28:50

标签: maven dependencies

我有一个带有多个jar项目的父项目,并且我正在使用一个特定的子项目来组装具有所有jar和依赖项的zip包,的确,我将我的所有项目添加为该特定项目的依赖项。 有什么办法可以在两个difirent zip中分隔jar和依赖项?

1 个答案:

答案 0 :(得分:0)

我能想到的最简单的方法是使用两个程序集描述符。

pom.xml:

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-assembly-plugin</artifactId>
            <version>3.1.0</version>
            <executions>
                <execution>
                    <phase>package</phase>
                    <goals>
                        <goal>single</goal>
                    </goals>
                </execution>
            </executions>
            <configuration>
                <descriptors>
                    <descriptor>src/assembly/assembly-myjars.xml</descriptor>
                    <descriptor>src/assembly/assembly-dependencies.xml</descriptor>
                </descriptors>
            </configuration>
        </plugin>
    </plugins>
</build>

assembly-myjars.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>myjars</id>
    <formats>
        <format>zip</format>
    </formats>
    <includeBaseDirectory>false</includeBaseDirectory>
    <dependencySets>
        <dependencySet>
            <includes>
                <include>your.groupId:*</include>
            </includes>
        </dependencySet>
    </dependencySets>
</assembly>

assembly-dependencies.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>dependencies</id>
    <formats>
        <format>zip</format>
    </formats>
    <includeBaseDirectory>false</includeBaseDirectory>
    <dependencySets>
        <dependencySet>
            <excludes>
                <exclude>your.groupId:*</exclude>
            </excludes>
        </dependencySet>
    </dependencySets>
</assembly>