Maven - 添加jar-with-dependencies作为依赖项

Sea*_*lly 12 dll dependencies native jar maven

问题..
我想在与其依赖关系打包的Maven jar上添加一个依赖项.

详细信息..
我有一个多模块Maven项目,其中一个模块依赖于本机库等.作为它构建的一部分,它将它的依赖关系打包成jar-with-dependencies如下所示:

<plugin>
    <artifactId>maven-assembly-plugin</artifactId>
    <version>2.4</version>
    <configuration>
        <descriptorRefs>
            <descriptorRef>jar-with-dependencies</descriptorRef>
        </descriptorRefs>
        <archive>
            <manifest>
                <mainClass>${mainClass}</mainClass>
            </manifest>
        </archive>
    </configuration>
    <executions>
        <execution>
            <id>make-assembly</id>
            <phase>package</phase>
            <goals>
                <goal>single</goal>
            </goals>
        </execution>
    </executions>
</plugin>
Run Code Online (Sandbox Code Playgroud)

一切都很好,我建立时得到两个罐子:

seaniscool-0.0.1-SNAPSHOT.jar
seaniscool-0.0.1-SNAPSHOT-jar-with-dependencies.jar
Run Code Online (Sandbox Code Playgroud)

但是,我想在同一项目的另一个模块中使用此工件.如果我只是将模块添加为依赖项,那么我将获得没有包含本机库的jar.

我可以复制构建配置以包含第二个模块中的本机库,它不是非常广泛,但不愿意.

任何想法我如何添加jar-with-dependencies作为依赖,因此依赖于包含的库?

一些想法..
我知道我可以用Maven可以引用的测试类构建一个单独的jar:

在第1单元中:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-jar-plugin</artifactId>
    <version>2.2</version>
    <executions>
        <execution>
            <goals>
                <goal>test-jar</goal>
            </goals>
        </execution>
    </executions>
</plugin>
Run Code Online (Sandbox Code Playgroud)

在第二个模块中:

<dependency>
    <groupId>my.group.id</groupId>
    <artifactId>my.artifact.id</artifactId>
    <version>my.version</version>
    <type>test-jar</type>
    <scope>test</scope>
</dependency>
Run Code Online (Sandbox Code Playgroud)

这个概念可能在这里转移吗?

msz*_*ach 22

您可以使用maven分类器执行此操作.使用类文件,因此maven模块可以从同一来源构建多个人工制品.示例是jdk1.6或1.7版本,甚至maven可以构建源和javadoc jar.

试试这个:

<dependency>
  <groupId>yourID</groupId>
  <artifactId>seaniscool</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <classifier>jar-with-dependencies</classifier>
</dependency>
Run Code Online (Sandbox Code Playgroud)

如果你想将你的类文件重命名为更好的名称,比如withNative或者完整或其他任何东西,请查看maven shade插件,它也可以构建具有依赖关系的jar,但允许更多的控制.