IDEA中 JAVA编译JAR包的几种方式

IDEA中 JAVA编译JAR包的几种方式

关于在IDEA中编译Java jar包的几种方式,简单记录,以备查阅。

1. 使用IDEA中的工具

以此选择以下:
File>Project Struct>Artifacts>+>JAR>From modules with dependencies
根据你的项目添加Main Class, MANIFEST.MF文件路径改成Resource目录。
根据界面提示可以修改生成JAR的路径和名字,从Available Elements中可选择需要打包进JAR的依赖包。
最后确认添加即可。
编译: Build>Buil Artifacts>Build
IDEA编译JAR

2. pom.xml配置,maven编译打包

需要在项目的pom.xml配置中加上以下配置项:

<build>
        <finalName>spark-daily</finalName>
        <plugins>
            <plugin>
                <artifactId>maven-assembly-plugin</artifactId>
                <executions>
                    <execution>
                        <phase>package</phase>
                        <goals>
                            <goal>single</goal>
                        </goals>
                    </execution>
                </executions>
                <configuration>
                    <!-- <descriptorRefs>
                        <descriptorRef>jar-with-dependencies</descriptorRef>
                    </descriptorRefs> -->
                    <descriptors>
                        <descriptor>package.xml</descriptor>
                    </descriptors>
                    <appendAssemblyId>false</appendAssemblyId>
                    <archive>
                        <manifest>
                            <mainClass>com.iauto.spark.SparkDaily</mainClass>
                        </manifest>
                    </archive>
                </configuration>
            </plugin>
        </plugins>
        <resources>
            <resource>
                <directory>src/main/resources</directory>
                <includes>
                    <include>**/*.properties</include>
                </includes>
                <filtering>true</filtering>
            </resource>
        </resources>
    </build>

其中:
finalName:标识最终编译出来的jar名称
mainClass:指定JAR包运行的main class
resource:指定需要打包进JAR包中的资源文件

关于依赖包的打包进JAR中:
jar-with-dependencies : 表示所有依赖包都打包进JAR
如果需要定制哪些包需要打包进JAR,使用:

 <descriptors>
     <descriptor>package.xml</descriptor>
 </descriptors>

通过增加配置文件package.xml来定制自己的依赖,示例如下:

<?xml version='1.0' encoding='UTF-8'?>
<assembly>
    <id>package</id>
    <formats>
        <format>jar</format>
    </formats>
    <includeBaseDirectory>false</includeBaseDirectory>
    <fileSets>
        <fileSet>
            <directory>${project.build.directory}/classes</directory>
            <outputDirectory>/</outputDirectory>
        </fileSet>
    </fileSets>
    <dependencySets>
        <dependencySet>
            <outputDirectory>/</outputDirectory>
            <unpack>true</unpack>
            <includes>
                <include>com.alibaba:fastjson</include>
            </includes>
        </dependencySet>
    </dependencySets>
</assembly>

其中:
${project.build.directory}/classes:表示项目本身编译出来的classes文件
对依赖包的选择通过dependencySet来设定:

    <dependencySet>
        <outputDirectory>/</outputDirectory>   ---设定在JAR中的路径,/表示根目录
        <unpack>true</unpack>                  ---对依赖包解压 
        <includes>
            <include>com.alibaba:fastjson</include>  ---指定需要打包的依赖项,格式为groupId:artifactId
        </includes>
    </dependencySet>

同理可以通过excludes/exclude* 来指定排除那些依赖包,具体的语法规则可以参考:
http://maven.apache.org/plugins/maven-assembly-plugin/assembly.html

最终编译打包,需要进入到项目的根目录,执行命令:mvn clean package即可。

3. 通过Spring 框架来打包

pom.xml中添加相关的配置:


    <parent>
       <groupId>org.springframework.boot</groupId>
       <artifactId>spring-boot-starter-parent</artifactId>
       <version>2.1.3.RELEASE</version>
       <relativePath/>
   </parent>
   
   <build>
       <plugins>
           <plugin>
               <groupId>org.springframework.boot</groupId>
               <artifactId>spring-boot-maven-plugin</artifactId>
               <configuration>
                   <fork>true</fork>
               </configuration>
           </plugin>
       </plugins>
   </build>

编译:mvn clean package

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Idea是一种集成开发环境(IDE),可以用于开发Java应用程序。它提供了许多功能,例如代码编辑、调试、编译以及将源代码打包成可执行的jar文件等。关于反编译和修改jar包,以下是一个简要的说明: 首先,反编译jar包是将已编译Java字节码转换回可读的Java源代码文件的过程。这可以通过使用一些反编译工具来完成,例如JD-GUI、Fernflower等。你可以选择合适的工具来打开jar包,并将其的class文件转换为可读的Java源代码。然后,你可以查看和修改源代码。 在反编译之后,你可以使用Idea或其他文本编辑器打开反编译得到的Java源代码文件。在这里,你可以对代码进行修改,添加新的功能,或者修复现有的问题。 完成修改后,你需要将修改后的代码重新编译成class文件,并将其替换原来的class文件。然后,你可以使用Idea或其他工具将这些class文件重新打包成一个新的jar文件。 在进行jar包修改时需要注意以下几点: 1. 反编译和修改jar包可能涉及法律问题,请确保你有权对jar进行修改。 2. 修改jar包可能会违反软件许可协议,确保你已经理解并遵守相应的协议。 3. 修改jar包可能会引入潜在的风险和漏洞,需要进行充分的测试和验证。 总结来说,可以使用Idea编译jar包,通过修改Java源代码文件实现功能的添加和修复。但在进行这一过程时,请确保合法性、遵守许可协议,并进行充分的测试和验证。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值