職場で、サードパーティのプッシュ機能を統合する必要がある springboot フレームワークで構築された Java Web プロジェクトに遭遇したため、Xiaomi プッシュ サービスを使用して、関連する jar パッケージをダウンロードしました。ローカル jar をプロジェクトに導入することは大きな問題ではなく、コードを記述した後、テスト クラスのテストに合格することは問題ありません。次に、パッケージ化して開発サーバーにデプロイする準備をします。プロジェクトは Tomcat を通じてデプロイされるため、パッケージ化方法は war パッケージになります。パッケージ化後、開発サーバーにアップロードし、起動に成功した後、作成したプッシュ インターフェイスをテストしたところ、失敗したことがわかりました。
分析の結果、パッケージ化された war にプロジェクト依存の jar が保存されている lib ディレクトリにローカルに導入されたプッシュ関連の jar パッケージがないことがわかりました。 30分ほど格闘した結果、問題は解決した。解いてみると、実はmavenの基礎知識を忘れていたことに気づきました。ここでは、springboot プロジェクトがローカル jar パッケージを導入する方法と、maven パッケージ化を通じて jar を lib フォルダーにパッケージ化する方法の概要を示します:
注: ここではローカル jar がインポートされるため、
<dependency> ... <!-- 表示当前jar是外部引入的,maven不会在repository查找它 --> <scope>system</scope> <!-- 指定引入的外部jar存放的路径,一般将jar包放在项目的某个目录下,通过相对路径指定 --> <systemPath>...</systemPath> </dependency>
<build> <finalName>xxxxxx</finalName> <plugins> <!--配置将第三方jar打进jar包中,跟<packaging>jar</packaging>配合,如果不写,springboot默认是打成jar包--> <!--<plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <configuration> <!-- 项目中单独引入第三方jar时,includeSystemScope值要为true <includeSystemScope>true</includeSystemScope> </configuration> </plugin>--> <!-- 打war包 --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-war-plugin</artifactId> <version>3.2.2</version> <configuration> <webResources> <!-- 配置将第三方jar打进war包中,跟<packaging>war</packaging>配合 --> <webResource> <directory>${pom.basedir}/src/main/resources/lib/</directory> <targetPath>WEB-INF/lib/</targetPath> <includes> <include>**/*.jar</include> </includes> </webResource> </webResources> </configuration> </plugin> </plugins> </build>
以上がローカルの依存関係jarパッケージをspringbootプロジェクトに導入し、libフォルダーにパッケージ化する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。