MavenとのJaxbエピソードコンピレーション
-
12-10-2019 - |
質問
Maven-Jaxb2-Plugin-Sample-Episode-0.7.4を実行しようとしています(説明しました ここ と 利用可能なダウンロード)個別のスキーマコンピレーションを試すには。最初のスキーマ(a)をコンパイルしているにもかかわらず、アーティファクトMaven-Jaxb2-Plugin-Sample-Episode-A-Maven:JAR:0.7.4を解決できないため、2番目のスキーマ(b)で失敗します。
実行します mvn assembly:assembly
コマンドライン(Windows)から、これは私が取得するエラーです。
...
[INFO] ------------------------------------------------------------------------
[INFO] Building Maven JAXB 2.x Plugin Sample [episode-b|maven]
[INFO] ------------------------------------------------------------------------
[INFO] [jaxb2:generate {execution: default}]
Downloading: http://repo1.maven.org/maven2/org/jvnet/jaxb2/maven2/maven-jaxb2-pl
ugin-sample-episode-a-maven/0.7.4/maven-jaxb2-plugin-sample-episode-a-maven-0.7.
4.jar
[INFO] Unable to find resource 'org.jvnet.jaxb2.maven2:maven-jaxb2-plugin-sample
-episode-a-maven:jar:0.7.4' in repository central (http://repo1.maven.org/maven2
)
[INFO] ------------------------------------------------------------------------
[ERROR] BUILD ERROR
[INFO] ------------------------------------------------------------------------
[INFO] Could not resolve the artifact.
Embedded error: Missing:
----------
1) org.jvnet.jaxb2.maven2:maven-jaxb2-plugin-sample-episode-a-maven:jar:0.7.4
Try downloading the file manually from the project website.
Then, install it using the command:
mvn install:install-file -DgroupId=org.jvnet.jaxb2.maven2 -DartifactId=mav
en-jaxb2-plugin-sample-episode-a-maven -Dversion=0.7.4 -Dpackaging=jar -Dfile=/p
ath/to/file
Alternatively, if you host your own repository you can deploy the file there:
mvn deploy:deploy-file -DgroupId=org.jvnet.jaxb2.maven2 -DartifactId=maven
-jaxb2-plugin-sample-episode-a-maven -Dversion=0.7.4 -Dpackaging=jar -Dfile=/pat
h/to/file -Durl=[url] -DrepositoryId=[id]
Path to dependency:
1) org.jvnet.jaxb2.maven2:maven-jaxb2-plugin-ample-episode-b-maven:jar:0
.7.4
2) org.jvnet.jaxb2.maven2:maven-jaxb2-plugin-sample-episode-a-maven:jar:
0.7.4
----------
1 required artifact is missing.
for artifact:
org.jvnet.jaxb2.maven2:maven-jaxb2-plugin-ample-episode-b-maven:jar:0.7.4
from the specified remote repositories:
central (http://repo1.maven.org/maven2)
[INFO] ------------------------------------------------------------------------
[INFO] For more information, run Maven with the -e switch
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 8 seconds
[INFO] Finished at: Wed Dec 22 16:31:29 CET 2010
[INFO] Final Memory: 16M/39M
[INFO] ------------------------------------------------------------------------
その例はそうであるように機能するはずです、私は何が間違っているのですか?実際のシナリオでは、さまざまなエピソードとしてコンパイルする必要がある10を超えるスキーマがあるため、自動にするためにProccessが必要です(つまり、個々のアーティファクトごとに「MVN何か」を実行する必要はありません)
解決
モジュール maven-jaxb2-plugin-ample-episode-b-maven
に依存します maven-jaxb2-plugin-ample-episode-a-maven
.
いつ mvn assembly:assembly
親フォルダ(2つのモジュールが含まれている)から実行され、jarを構築します maven-jaxb2-plugin-ample-episode-a-maven
, 、 しかし ローカルリポジトリにインストールしません.
それが構築しようとするとき maven-jaxb2-plugin-ample-episode-b-maven
, 、依存関係を探します(maven-jaxb2-plugin-ample-episode-a-maven
)そして、それをローカルリポジトリで見つけることができません。したがって、エラー。
問題は、なぜ実行したいのかということです mvn assembly:assembly
, 、どちらがバイナリ分布を作成するために使用されますか?どちらのモジュールにもアセンブリ記述子はありません。
mvn install
正常に動作し、両方のモジュールを正常に構築します。