1.はじめに
SpringBoot Mavenと我々の開発の出現時にローカル参照が表示されますMavenのパッケージSpringBootを使用してプロジェクトを記録するために、ここで、と言ってすべてが二つの側面を持っているとして、トラブルがあるだろう、単純なところがあり、大きな利便性を提供サードパーティのjarパッケージを発行します。
問題の説明
自動的にMavenのプロジェクト、サードパーティのjarパッケージを参照する際には通常、POMファイルの依存関係とその上のjarパッケージに指定され、これはMavenの非常に通常の操作で、構成された依存性は、適切なjarファイルのパッケージを挿入SpringBoot幸せ、パッケージの達人でも次のWEB-INF / libのjarファイルにパッケージに依存しますときに、プロジェクト、開発時間は、瓶のパッケージのクラスやメソッドに直接導入することができる参加、どんなに幸せ-
が、常にありますカラムは、より良いPWがある場合は、公共の倉庫に存在しない、あなたのjarパッケージに他の人を紹介するために提供しなければならないいくつかの理由によるプロジェクトは、PWには頭痛が始まったん。
一部の人々は、ローカルのMavenリポジトリに新しいディレクトリを作成し、それらへのjarパッケージへのカスタムパスし、その後でのpom.xmlに追加し、言う対応する<依存>コンフィギュレーション大丈夫だろう!これは確かに可能ですが、このアプローチは、ソースコードを保持し、プロジェクトの開発とエンジニアリングチームを助長されていません、そのためのアカウントにコードの整合性を取って、直接コンパイルし実行することができますプロジェクトからダウンロードされたコードに影響を与えない、プログラムが配りますA。
いくつかの関連情報を確認した、我々は発見した使用<依存>で<systemPath>サードパーティの参照のjarパッケージの効果を得ることができ、そしてそれはこのように、真であるincludeSystemScopeスプリング-ブートのmaven-プラグインを設定します。
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.st.springboot</groupId>
<artifactId>ingredients-java</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>war</packaging>
<name>ingredients-java</name>
<dependencies>
<dependency>
<groupId>org.bouncycastle</groupId>
<artifactId>bcprov-jdk16</artifactId>
<version>1.46</version>
<scope>system</scope>
<systemPath>${project.basedir}/src/main/resources/jar/bcprov-jdk16-1.46.jar</systemPath>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<includeSystemScope>true</includeSystemScope>
</configuration>
</plugin>
</plugins>
</build>
</project>
セットがその考えた場合、非常に満足して終了し、さらにはバッグの中身もIDEを表示することができます参照してください。
私はすべての満足を考え、しかし、展開をパッケージ開発したプログラムに問題がある、私は、ローカル参照の瓶を発見しましたパッケージ彼らが立ち上がったプロジェクトの元の場所に残って、WEB-INFディレクトリにjarファイルのパッケージをlibがヒットされていません!
この問題を解決する3。
時間が不足して動作しますが、最初の戦争のパッケージに行くために参照されるすべてのlibディレクトリのjarパッケージの、実際には、戦争のパッケージが正常に上がる展開します。1日は......冷却することではないものを展開Mavenの定期的な自動包装を設定しようとする場合しかし、これは、根本的な問題が解決されていない、ああしていない
、特にアドレスのmavenプラグイン提供し、解決策を見つけるための情報への継続的なアクセスを、そして最終的に仕事が報わ地元のパッケージ、およびMavenの戦争-プラグインと呼ばれるこの事に疑問を参照するとき、戦争パッケージを戦います!
私はこのように、次のpom.xmlになったので:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.st.springboot</groupId>
<artifactId>ingredients-java</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>war</packaging>
<name>ingredients-java</name>
<dependencies>
<dependency>
<groupId>org.bouncycastle</groupId>
<artifactId>bcprov-jdk16</artifactId>
<version>1.46</version>
<scope>system</scope>
<systemPath>${project.basedir}/src/main/resources/jar/bcprov-jdk16-1.46.jar</systemPath>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<includeSystemScope>true</includeSystemScope>
</configuration>
</plugin>
<!-- 下面是为了将本地jar包打入WEB-INF/lib下而增加的配置-->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>3.2.2</version>
<configuration>
<webResources>
<resource>
<!-- 指向的是包含你所有要用jar包的目录 -->
<directory>${project.basedir}/src/main/resources/jar</directory>
<!-- 编译后要把这些jar包复制到的位置 -->
<targetPath>WEB-INF/lib</targetPath>
</resource>
</webResources>
</configuration>
</plugin>
</plugins>
</build>
</project>
設定後、WEB-INF / libの下に得点ローカルのjarパッケージ完璧を発見するために、再度、パッケージのコマンドを実行し、この問題は解決されました!
ときああ〜他の場所でMavenの戦争 - プラグインを使用するための注意を払うする必要がある、jarファイルは、したがって、パッケージは適用されません。