mvn archetype:generate提供了太多选项,我希望用junit测试用例创建一个简单的java实用程序。我想知道我应该在这里使用什么样的原型?
答案 0 :(得分:73)
我使用两种原型。这取决于您将创建的应用程序类型。
如果您想要一个Web应用程序,请使用maven-archetype-webapp,或者如果您想要一个简单的应用程序,请使用maven-archetype-quickstart。它们非常有用,因为您可以毫无问题地扩展它们。
答案 1 :(得分:17)
我正在使用如下命令:
mvn archetype:generate -Dfilter=org.apache.maven.archetypes:
我只会从org.apache.maven.archetypes
groupId获得一个短列表的achetypes。与我的前任所说的一样,开始的好的是maven-archetype-quickstart
和maven-archetype-webapp
。
答案 2 :(得分:15)
当您执行mvn archetype:generate
时,默认选择会显示在括号中的大括号()
中,例如(1274)
,如果向上滚动以查看#1274是什么,它通常是尝试或开始使用的默认Java原型,如果执行简单的Java项目,那么可以安全地选择。
答案 3 :(得分:6)
我认为你应该使用maven-archetype-simple
修改
根据maven documentation:
maven-archetype-quickstart
包含示例Maven项目的原型。maven-archetype-simple
包含简单Maven项目的原型。答案 4 :(得分:6)
我会从一个非常简单的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
答案 5 :(得分:4)
mvn archetype:generate -DgroupId=com.example -DartifactId=foobar -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false
答案 6 :(得分:3)
您可以使用The Practical Developer中的任何基本功能:
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/
免责声明:我是该博客的作者。
答案 7 :(得分:0)
maven-archetype-quickstart包含示例Maven项目的原型。 maven-archetype-simple包含简单Maven项目的原型。
如果收到错误 通过将maven原型目录添加到eclipse来修复它。步骤如下:
打开窗口&gt;偏好&GT; Maven&gt;原型
点击
Add Remote Catalog
并添加以下内容:目录文件:http://repo1.maven.org/maven2/archetype-catalog.xml
描述:maven目录
注意:在创建您的第一个项目期间需要互联网连接。
答案 8 :(得分:0)
现在默认的原型号是1092 1092:远程 - &gt; org.apache.maven.archetypes:maven-archetype-quickstart(包含示例Maven项目的原型。)
答案 9 :(得分:0)
您可能需要考虑Java Archetype:它具有合理的默认值,可以按照包括JUnit测试在内的最佳实践快速启动Java项目。我认为它是maven-archetype-quickstart
的现代继任者。
示例:mvn archetype:generate -DarchetypeGroupId=io.github.oliviercailloux -DarchetypeArtifactId=java-archetype -DgroupId=mygroupid -DartifactId=myartifactid -DinteractiveMode=false
。
免责声明:我是作者。
有关替代品的更多信息,这是that project’s README的一部分(它提供的链接多于此处复制的链接)。
快速入门原型
简单Java项目的正式原型(由Apache的《 Maven入门指南》和Apache Maven Cookbook提及)为maven-archetype-quickstart,或完整的org.apache.maven.archetypes:maven-archetype-quickstart。 / p>
恕我直言,它已被弃用,因为它有几个缺点。
默认情况下,我的原型还提供日志记录,我认为它很有用,扩展性比sysout好,并且不会受到损害;还有Guava,我认为它有益地丰富了Java。
Maven Central中的其他快速入门原型
为了在可能的情况下共同努力并避免浪费的重复,我积极地寻找了与我的目标相同的其他原型:提供具有合理默认值的简单原型,以轻松地启动现代Java项目。 (这大部分是在2020年6月左右完成的。)
在互联网上进行的常规搜索使我找到了The Practical Developer。当与他联系时,他通过电子邮件给我写信说,他没有定期进行原型设计,因此宁愿拒绝在该项目上进行合作。
由于网上搜索没有发现其他有用的结果,并且由于我没有找到适合自己需求的专门搜索工具,因此我实现了一个简单的原型浏览器。它列出了Maven Central中可用的所有原型。手动审核的内容太多了,因此,我选择了groupId和artifactId至少存在三年并在去年进行了更新的对象,以期找到长期维护的项目,我想表明更可能是一个高质量的项目。 (当然,此过滤器可能错过了与既定目标完全匹配的高质量原型;我没有办法知道。作为一个例子,由于我随着时间的推移更改了其artifactId,因此这种原型无法通过该过滤器。) / p>
然后我根据在其POM中找到的原型描述手动过滤了结果列表,并进一步查看了(通常在官方网站上)其中的一些有希望的原型。只有com.github.ngeor:archetype-quickstart-jdk8
被证明是合适的候选人。但是它的作者给我写信说,“这些天他并没有真正使用/维护原型”。