1. **問題の原因:
idea ツールを使用して springboot マルチモジュール プロジェクトを作成する場合、new-project
次に、作成されたプロジェクトの pom <parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.7.5</version>
<にこのような構成があります。relativePath/> <!-- リポジトリから親を検索 -->
</parent>
サブモジュールの場合、この段落は親プロジェクトの POM を継承するように変更する必要があります。
親プロジェクトの場合は、この構成を保持し
、親プロジェクトで複数のプロファイルを構成します
<profiles>
<profile>
<!-- ローカル開発環境 -->
<id>dev</id>
<properties>
<!--ここのタグ名は、リソースでスプライシングされます -->
<activatedProperties>dev</activatedProperties>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
</profile>
<profile>
<!-- 测试环境 -->
<id>test</id>
<properties>
<activatedProperties>test</activatedProperties>
</properties>
</profile>
<profile>
<!-- 生産環境 -->
<id>prod</id>
<properties>
<activatedProperties>prod</activatedProperties>
</properties>
</プロファイル>
</プロファイル>
2. その後、新しい環境が追加されたため、次のように新しいプロファイルが親 POM に追加されました。 <profiles>
<profile>
<
!-- ローカル開発環境 -->
<id>dev</id>
< properties>
<!- - ここでのタグ名はリソースとスプライシングされます -->
<activatedProperties>dev</activatedProperties>
</properties>
<!-- これはデフォルトのオプションとして設定されています -->
<activation>
< activeByDefault>true</activeByDefault> </activeByDefault>
</アクティブ化>
</profile>
<profile>
<!-- テスト環境-->
<id>test</id>
<プロパティ>
<activatedProperties>test</activatedProperties>
</properties>
</profile>
<profile>
<!-- テスト環境--> /** 新しく追加された環境設定ファイル名
<id>test-hz</id>
<properties>
<activatedProperties>test-hz</ /** activateProperties>
</properties>
</profile>
<profile>
<!-- 本番環境-->
<id>prod</id>
<properties>
<activatedProperties>prod</activatedProperties>
</properties>
</profile>
< /プロファイル>
次に、プロジェクトをテスト環境にデプロイし、新しく追加された構成ファイル test-hz を選択し、
パッケージ ステートメント mvn clean package -P test-hz を使用して
、レポートをパッケージ化します。
The requested profile "test-hz" could not be activate because it does not exist.
新しく追加されたプロファイルが見つかりませんが、環境が POM に追加され、構成ファイルも存在します。
3. 上記の問題の理由は、親 POM の relativePath ラベルが原因です。
このタグが記述されていない場合、プロジェクト パス内の親 POM がデフォルトで jar 依存関係のベースとして使用されます。しかし、空のタグを書いた場合、空のタグ <relativePath/> <!-- リポジトリから親を検索 --> を書いただけで、maven は常にパッケージング時にリモート ウェアハウスから POM を取得し、リモート ウェアハウスでは、私はtest-hz のプロファイルを追加していないため、test-hz の環境構成を見つけることができませんでした。代わりに、構成のデフォルト環境として dev が使用されます
4. 解決策は、親 POM の relativePath タグを削除することです。