IDEA添加本地jar包並使用maven打包


今天接手一個一年多前的自己做的項目,當時自己剛剛工作幾個月,出差到外地,項目也是保密性質的,不能聯網,沒有Maven倉庫,只有些零零散散的項目要用到的jar包。同事用IDEA創建Artifacts打包,自己手動配置MANIFEST.MF,真心難受。

現在又拿到這個項目,Springboot版本1.52.RELEASE,找包都找了半天。

好不容易找到了,用<scope>system</scope><systemPath>${project.basedir}/lib/xxx.jar</systemPath>這種方式引入到pom中,項目也能啟動,但死活不能用maven一鍵打包,手動打包?痛苦面具。

今天寫下這篇文章記錄一下,如何在IDEA引入了本地jar包的情況下使用maven插件打包

打開Project Structure

選擇本地jar包所在目錄並確認應用,這里我在當前項目下新建了名為lib的Directory,本地jar包都移到這里面

select lib

完成后就可以看見已經成功引入本地jar包

然后轉到Modules

modules

可以看到當前模塊的依賴就有了剛剛添加的本地jar包,作用域為Compile

pom.xml配置

打開側欄ProjectExternal Libraries,可以看到現在項目除了JDK以外並無其他依賴包

打開pom.xml文件

正常的Properties

<properties>
    <java.version>11</java.version>
</properties>

dependencies也是正常編寫,然后只需新加作用域compile

<dependencies>
    <dependency>
        <groupId>org.apache.commons</groupId>
        <artifactId>commons-lang3</artifactId>
        <version>3.11</version>
        <scope>compile</scope>
    </dependency>
</dependencies>

此時External Libraries里也正常引入了

然后是build

<build>
    <finalName>local-jar-dem</finalName>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            <!-- 本地jar包還需要引入相關的springboot依賴,且版本號不可勝,得顯式寫出 -->
            <version>2.4.1</version>
            <configuration>
                <includeSystemScope>true</includeSystemScope>
            </configuration>
            <executions>
                <execution>
                    <goals>
                        <!-- 加上這個配置才能完成打包,不然打出來只有幾十K -->
                        <goal>repackage</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
        <plugin>
            <!--
                這個配置是指定項目語言等級(解決刷新maven后lambda的支持問題),公司項目使用的Springboot為1.52,最高只支持Java6。
                當然,我這里的演示項目使用的當前最新版的Springboot2.4.1,安裝的Java版本為JDK11,所以這個插件配置我這里可以不需要。
            -->
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.8.1</version>
            <configuration>
                <source>11</source>
                <target>11</target>
                <encoding>UTF-8</encoding>
            </configuration>
        </plugin>
    </plugins>
</build>

此時就可以愉快地使用maven插件打包了 😃

奇跡再現

順便一提,如果要使用IDEA Artifacts打包,需要注意的是在選擇MANIFEST.MF文件保存位置時不要默認選到xx/src/main/java,這會導致打出來的包丟失主類信息如Main-Class: net.add1s.localjardemo.LocalJarDemoApplication


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM