[解決済み] 複数のスキーマパッケージを生成するようにjaxb / Mavenに指示するにはどうすればよいですか?
2023-03-28 08:54:34
質問
例
</plugin>
<plugin>
<groupId>org.jvnet.jaxb2.maven2</groupId>
<artifactId>maven-jaxb2-plugin</artifactId>
<version>0.7.1</version>
<executions>
<execution>
<goals>
<goal>generate</goal>
</goals>
</execution>
</executions>
<configuration>
<schemaDirectory>src/main/resources/dir1</schemaDirectory>
<schemaIncludes>
<include>schema1.xsd</include>
</schemaIncludes>
<generatePackage>schema1.package</generatePackage>
</configuration>
</plugin>
<plugin>
<groupId>org.jvnet.jaxb2.maven2</groupId>
<artifactId>maven-jaxb2-plugin</artifactId>
<version>0.7.1</version>
<executions>
<execution>
<goals>
<goal>generate</goal>
</goals>
</execution>
</executions>
<configuration>
<schemaDirectory>src/main/resources/dir2</schemaDirectory>
<schemaIncludes>
<include>schema2.xsd</include>
</schemaIncludes>
<generatePackage>schema2.package</generatePackage>
</configuration>
</plugin>
</plugins>
何が起きたのか。 Mavenは、最初のプラグインを実行します。その後、ターゲットフォルダを削除し、2つ目のパッケージを作成し、表示されるようにします。
最初の設定にtarget/somedir1、2番目の設定にtarget/somedir2を設定しようとしました。でも、行動は変わらない?何かアイデアはありますか?私は、src/main/java フォルダーに直接パッケージを生成したくありません。なぜなら、これらのパッケージは生成されたものであり、手動で作成したクラスと混在してはならないからです。
どのように解決するのですか?
異なる指定をする必要がありました。
generateDirectory
(これがなければ、プラグインはファイルが最新であるとみなし、2回目の実行時には何も生成していませんでした)。に従うことをお勧めします。
target/generated-sources/<tool>
という規約を設け、生成されたソースが自動的にお気に入りのIDEにインポートされるようにしました。また、いくつか宣言することをお勧めします。
execution
プラグインを2回宣言する代わりに(そして
configuration
内各
execution
要素)を含む。
<plugin>
<groupId>org.jvnet.jaxb2.maven2</groupId>
<artifactId>maven-jaxb2-plugin</artifactId>
<version>0.7.1</version>
<executions>
<execution>
<id>schema1-generate</id>
<goals>
<goal>generate</goal>
</goals>
<configuration>
<schemaDirectory>src/main/resources/dir1</schemaDirectory>
<schemaIncludes>
<include>shiporder.xsd</include>
</schemaIncludes>
<generatePackage>com.stackoverflow.package1</generatePackage>
<generateDirectory>${project.build.directory}/generated-sources/xjc1</generateDirectory>
</configuration>
</execution>
<execution>
<id>schema2-generate</id>
<goals>
<goal>generate</goal>
</goals>
<configuration>
<schemaDirectory>src/main/resources/dir2</schemaDirectory>
<schemaIncludes>
<include>books.xsd</include>
</schemaIncludes>
<generatePackage>com.stackoverflow.package2</generatePackage>
<generateDirectory>${project.build.directory}/generated-sources/xjc2</generateDirectory>
</configuration>
</execution>
</executions>
</plugin>
この設定だと、aの後に以下のような結果が得られます。
mvn clean compile
$ ツリーターゲット/ ターゲット/ ├─ クラス │ ├─コム │ │ └─ スタックオーバーフロー │ │ ├─ App.class │ │ ├─ パッケージ1 │ │ ├─ ObjectFactory.class │ │ ├── Shiporder.class │ │ ├─ Shiporder$Item.class │ │ └─ Shiporder$Shipto.class │ │ └── パッケージ2 │ │ ├─ BookForm.class │ │ ├─ BooksForm.class │ │ ├─ ObjectFactory.class │ │ └─ package-info.class │ ├─ dir1 │ └─ shiporder.xsd │ └────────────────────────┘ DIR2 │ └─ books.xsd 生成されたソース └── Generated-Sources ├─ xjc │ └─META-INF └── Sun-jaxb.episode ├─ xjc1 │ └────────────────────────┘コム │ └─ スタックオーバーフロー │ └── パッケージ1 │ ├─ ObjectFactory.java │ └─ Shiporder.java └─ xjc2 └── コム └─ スタックオーバーフロー └── パッケージ2 ├─ BookForm.java ├─ BooksForm.java ├─ ObjectFactory.java └─────────────────────────┘ Package-info.java
というのが、予想される結果のようです。
関連
-
[解決済み] android.os.NetworkOnMainThreadException' を修正するにはどうすればよいですか?
-
[解決済み] あるアーティファクトの依存関係ツリーを取得する方法は?
-
[解決済み] Javaでメモリーリークを発生させるにはどうしたらいいですか?
-
[解決済み] Mavenを使用して、依存関係を持つ実行可能なJARを作成するにはどうすればよいですか?
-
[解決済み] 英数字のランダムな文字列を生成する方法
-
[解決済み] Mavenに最新バージョンの依存関係を使用するように指示するにはどうすればよいですか?
-
[解決済み] mvn クリーンインストール vs. デプロイ vs. リリース
-
[解決済み] リモートのmaven2アーティファクトをローカルリポジトリにダウンロードするためのシンプルなコマンドライン?
-
[解決済み] Mavenコマンドでライフサイクルのフェーズをバインドゴールと共にリストアップする?
-
[解決済み] Mavenのリアクタービルドからモジュールを除外する方法は?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】MavenのアーティファクトとgroupIdの命名について
-
[解決済み] mvn install の代替となる Gradle
-
[解決済み] Mavenを使用したリリース依存の強制再ダウンロード
-
[解決済み] Maven: ライブラリによって追加された依存関係をオーバーライドする方法
-
[解決済み] mvn クリーンインストール vs. デプロイ vs. リリース
-
[解決済み] MavenレポはNexusとArtifactoryのどちらを使うべき?[クローズド]
-
[解決済み] 親ディレクトリを示すMaven2プロパティ
-
[解決済み] ローカルリポジトリへの "mvn deploy "と "mvn install "の違いは何ですか?
-
[解決済み] Maven 2でアーティファクトを手動でインストールするには?
-
[解決済み] Windows版Maven2でのJavaヒープスペースの設定