mvn archetype:generateは非常に多くのオプションを提供し、junitテストケースを使用して単純なJavaユーティリティを作成しようとしています。ここでどのアーキタイプを使用すべきか知りたいですか?
回答:
を実行するmvn archetype:generate
と、デフォルトの選択が中括弧で囲まれて表示されます()
。たとえば(1274)
、上にスクロールして#1274が何であるかを確認する場合、単純なJavaプロジェクトを実行する場合は、通常、デフォルトのJavaアーキタイプを試してみるか、最初から始めます。安全に選択できます。
380: remote -> org.apache.maven.archetypes:maven-archetype-quickstart (An archetype which contains a sample Maven project.)
org.apache.maven.archetypes:maven-archetype-quickstart:1.1
私は2つの原型を使用します。作成するアプリケーションの種類によって異なります。
Webアプリケーションが必要な場合は、maven-archetype-webappを使用します。単純なアプリケーションが必要な場合は、maven-archetype-quickstartを使用します。問題なく拡張できるので便利です。
mvn archetype:generate -DgroupId=com.example -DartifactId=foobar -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false
私はあなたが使うべきだと思います maven-archetype-simple
編集
Mavenのドキュメントによると:
maven-archetype-quickstart
サンプルのMavenプロジェクトを含むアーキタイプ。maven-archetype-simple
単純なMavenプロジェクトを含むアーキタイプ。maven-archetype-simple
Eclipseの選択には表示されませんが、表示されますmaven-archetype-quickstart
。彼らは同じですか?
pom.xml
手動で編集し、コマンドプロンプトからコマンドラインを実行することを好みます。
まず、必要なものだけを含む非常に単純なpom.xmlファイルから始めます。何かのようなもの
<project>
<modelVersion>4.0.0</modelVersion>
<groupId>com.mycompany.app</groupId>
<artifactId>my-module</artifactId>
<version>1</version>
</project>
http://maven.apache.org/guides/introduction/introduction-to-the-pom.htmlから
The PracticalDeveloperの基本的なものを使用できます。
mvn archetype:generate -DgroupId=[your-project-groupId] -DartifactId=[your-project-name] -DarchetypeGroupId=com.thepracticaldeveloper -DarchetypeArtifactId=archetype-java-basic-tpd -DarchetypeVersion=1.0.0
mvn archetype:generate -DgroupId=[your-project-groupId] -DartifactId=[your-project-name] -DarchetypeGroupId=com.thepracticaldeveloper -DarchetypeArtifactId=archetype-java-basic-tpd -DarchetypeVersion=1.0.0 -Djava-version=9
これらには、JUnit 4、Mockito、AssertJ、およびjarファイルを実行可能にする場合のデフォルトのマニフェストファイルが含まれます。詳細:https://thepracticaldeveloper.com/archetypes/
免責事項:私はそのブログの著者です。
groupId
が、何のarchetypeGroupId
ために?
archetypeArtifactId
。
maven-archetype-quickstartサンプルのMavenプロジェクトを含むアーキタイプ。maven-archetype-simple単純なMavenプロジェクトを含むアーキタイプ。
エラーが発生した場合は、MavenアーキタイプカタログをEclipseに追加して修正してください。手順は次のとおりです。
ウィンドウを開く>設定> Maven>アーキタイプ
クリック
Add Remote Catalog
して、以下を追加します。カタログファイル:http://repo1.maven.org/maven2/archetype-catalog.xml
説明:Mavenカタログ
注:最初のMavenプロジェクトの作成中は、インターネット接続が必要です。
デフォルトのアーキタイプ番号は10921092になりました:remote-> org.apache.maven.archetypes:maven-archetype-quickstart(サンプルのMavenプロジェクトを含むアーキタイプ)。
Javaアーキタイプを検討することをお勧めします。JUnitテストを含むベストプラクティスに従ってJavaプロジェクトをすばやく開始するための妥当なデフォルトがあります。私はそれをの現代の後継者として考えましたmaven-archetype-quickstart
。
例:mvn archetype:generate -DarchetypeGroupId=io.github.oliviercailloux -DarchetypeArtifactId=java-archetype -DgroupId=mygroupid -DartifactId=myartifactid -DinteractiveMode=false
。
免責事項:私は著者です。
代替案の詳細については、そのプロジェクトのREADMEの一部を参照してください(ここにコピーされているよりも多くのリンクが提供されています)。
公式クイックスタート原型
単純なJavaプロジェクトの公式アーキタイプ(ApacheのMaven入門ガイドおよびApache Mavenクックブックで言及)は、maven-archetype-quickstart、またはorg.apache.maven.archetypes:maven-archetype-quickstartの完全版です。
IMHOは、いくつかの弱点があるため、非推奨と見なす必要があります。
私のアーキタイプは、デフォルトでロギングも提供します。これは便利だと思いますが、sysoutよりも拡張性が高く、害はありません。Guavaは、Javaを便利に充実させると思います。
MavenCentralの他のクイックスタートアーキタイプ
可能であれば取り組みに参加し、無駄な重複を避けるために、私は自分と同じ目的を持つ他のアーキタイプを積極的に探しました。つまり、最新のJavaプロジェクトを簡単に開始するための妥当なデフォルトを持つ単純なアーキタイプを提供します。(これは主に2020年6月頃に行われました。)
インターネットでの一般的な検索により、私はThe PracticalDeveloperにたどり着きました。連絡を受けたとき、彼は私に(電子メールで)自分の原型に定期的に取り組んでいないので、そのようなプロジェクトでの共同作業を辞退することを好んだと書いた。
ネットで検索しても他の有用な結果が得られなかったため、また自分のニーズに適した専用の検索ツールが見つからなかったため、単純な原型ブラウザーを実装しました。MavenCentralで利用可能なすべてのアーキタイプが一覧表示されます。手動で確認するには多すぎるので、長期的に維持されるプロジェクトを見つけることを期待して、groupIdとartifactIdが少なくとも3年前から存在し、昨年中に更新されたものを選択しました。おそらく質の高いプロジェクトです。(もちろん、このフィルターは、指定された目標に完全に一致する高品質のアーキタイプを見逃している可能性があります。私にはわかりません。適切な例として、このアーキタイプは、artifactIdを時間の経過とともに変更したため、そのフィルターを通過しません。)
次に、POMにあるアーキタイプの説明に基づいて、結果のリストを手動でフィルタリングし、それらの中でいくつかの有望なアーキタイプを(通常は公式Webサイトで)さらに調べました。com.github.ngeor:archetype-quickstart-jdk8
適切な候補であることが明らかにされただけです。しかし、その作者は私に、「最近はアーキタイプをあまり使用/維持していない」と書いています。