eclipse导出maven java project为jar包,包含第三方依赖jar包以及普通Java Project 导出包含第三方

对于maven项目,如果直接使用eclipse的export功能,导出的jar包是不包含依赖的第三方jar包的。

而eclipse maven的不使用插件,也是不包含依赖的第三方jar包的

所以解决方案是使用eclipse的maven导出jar包:pom.xml中使用maven-assembly-plugin插件

该插件有加main类和不加main类两种                                                                                                                                                     我想用不加main类的这种,

<plugins>
      <plugin>
        <artifactId>maven-assembly-plugin</artifactId>
        <version>3.0.0</version>
        <configuration>
          <descriptorRefs>
            <descriptorRef>jar-with-dependencies</descriptorRef>
          </descriptorRefs>
        </configuration>
        <executions>
          <execution>
            <id>make-assembly</id> <!-- this is used for inheritance merges -->
            <phase>package</phase> <!-- bind to the packaging phase -->
            <goals>
              <goal>single</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
</plugins>

         要加main类的方式:

<plugins>
            <!--(start) for package jar with dependencies -->
            <plugin>
                <artifactId>maven-assembly-plugin</artifactId>
                <version>3.0.0</version>
                <configuration>
                    <archive>
                        <manifest>
                            <mainClass>Main</mainClass>
                        </manifest>
                    </archive>
                    <descriptorRefs>
                        <descriptorRef>jar-with-dependencies</descriptorRef>
                    </descriptorRefs>
                </configuration>
                <executions>
                    <execution>
                        <id>make-assembly</id> <!-- this is used for inheritance merges -->
                        <phase>package</phase> <!-- bind to the packaging phase -->
                        <goals>
                            <goal>single</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
            <!--(end) for package jar with dependencies -->
</plugins>

还有修改为使用assembly.xml方式的,参考https://blog.csdn.net/w_quan/article/details/83306213

第二步,点击eclipse maven的update project

第三步,项目右键->run as->maven build...->Goals中填package->run,或者直接maven build,然后就会在项目的target目录下生成jar包,截图参考这两篇文章(https://blog.csdn.net/rongrong_love_lc/article/details/62890994https://www.cnblogs.com/justinzhang/p/4983633.html)如下:注意,现在有些eclipse maven插件没有select框了,那就自己在"Goals"框中填入"package"。

结果展示:com.youzan是项目,而com和org下有依赖的第三方jar包

 


关于普通Java Project导出jar包含第三方jar的方法:

在网上看的方案,基本都是:

1、自定义MANIFEST.MF

2、FatJar

尝试了方案1,并没有成功。而方案2,则只支持低版本的Eclipse,因此也放弃了此方案。

最终测试可用的方案是:项目中新建有执行入口的类,然后导出时,选择Runnable Jar File,生成的Jar包可正常使用第三方Jar的功能。

具体步骤:

工程右键-->Export-->Java-->Runnable Jar File-->Launch configuration选择项目中包含执行入口的类,Export destination选择Jar包保存路径-->finish

参考【Java】Eclipse导出包含第三方Jar的工程

MANIFEST.MF 

经过测试,通过Runnable Jar File的方式的确能带上第三方jar的class

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值