maven用外部lib创建胖罐

时间:2016-07-29 08:25:09

标签: maven jar

我试图创建一个包含外部jar的可执行jar。     我已经阅读了下面提到的文章,但在我的情况下,使用这个外部jar我必须使用以下内容:                      #我的组#                 #myArtifact#                 #版#                 系统                 $ {} project.basedir /lib/#myjar#.jar                  由于systemPath,我必须使用范围系统,这就是为什么,我的jar不会被包含在我的最终可执行jar中。     当我尝试运行我的jar时,最终会将NoClassDefFoundError发送到我的外部jar。     你可以帮助我,如何将我的外部罐子放入我最后的可运行的罐子里。

Here is my current plugins:
 <!-- compiler plugin -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>2.3.2</version>
                <configuration>
                    <source>${jdk.version}</source>
                    <target>${jdk.version}</target>
                </configuration>
            </plugin>

            <!-- Make this jar executable -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-jar-plugin</artifactId>
                <configuration>
                    <archive>
                        <manifest>
                            <addClasspath>true</addClasspath>
                            <mainClass>#MYMAINCLASS#</mainClass>
                            <classpathPrefix>lib/</classpathPrefix>
                        </manifest>
                    </archive>
                </configuration>
            </plugin>

            <!-- Copy project dependency , can be used when we have repository.-->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-dependency-plugin</artifactId>
                <version>2.5.1</version>
                <executions>
                    <execution>
                        <id>copy-dependencies</id>
                        <phase>prepare-package</phase>
                        <goals>
                            <goal>copy-dependencies</goal>
                        </goals>
                        <configuration>
<outputDirectory>${project.build.directory}/lib</outputDirectory>
                        </configuration>
                    </execution>
                </executions>
            </plugin>

Thanks you answer in advance!

http://stackoverflow.com/questions/574594/how-can-i-create-an-executable-jar-with-dependencies-using-maven
https://www.mkyong.com/maven/create-a-fat-jar-file-maven-assembly-plugin/

1 个答案:

答案 0 :(得分:0)

手动将外部jar安装到您的存储库,然后使用默认范围的jar,这将是最简单的解决方案。

mvn install:install-file -Dfile=<path-to-file> \
                         -DgroupId=<myGroup> \
                         -DartifactId=<myArtifactId> \
                         -Dversion=<myVersion> \
                         -Dpackaging=<myPackaging> 

您还可以参考其他可能的选项here