为简单的java项目选择什么样的原型

时间:2011-08-23 08:44:48

标签: java maven maven-archetype

mvn archetype:generate提供了太多选项,我希望用junit测试用例创建一个简单的java实用程序。我想知道我应该在这里使用什么样的原型?

10 个答案:

答案 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-quickstartmaven-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

参考: Build Run Java Maven Project Command Line

答案 6 :(得分:3)

您可以使用The Practical Developer中的任何基本功能:

Java 8 +常用测试库:

mvn archetype:generate -DgroupId=[your-project-groupId] -DartifactId=[your-project-name] -DarchetypeGroupId=com.thepracticaldeveloper -DarchetypeArtifactId=archetype-java-basic-tpd -DarchetypeVersion=1.0.0

Java 9 +常用测试库

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>

恕我直言,它已被弃用,因为它有几个缺点。

  • 一个重要的问题是,它创建了依赖JUnit 4的项目。当前版本(JUnit 5)有很大的不同,其中包括改进的API。
  • 次要弱点:其默认版本为1.0-SNAPSHOT,应遵循推荐的常用方案为1.0.0-SNAPSHOT。
  • 另一个弱点:它创建为1.7 JVM配置的项目。如果您特别需要支持旧安装,这可能是适当的,但是对于新项目,选择合理的最新JVM是更合理的默认规则。例如,Java 8引入了lambda表达式,您可能不想错过它。

默认情况下,我的原型还提供日志记录,我认为它很有用,扩展性比sysout好,并且不会受到损害;还有Guava,我认为它有益地丰富了Java。

Maven Central中的其他快速入门原型

为了在可能的情况下共同努力并避免浪费的重复,我积极地寻找了与我的目标相同的其他原型:提供具有合理默认值的简单原型,以轻松地启动现代Java项目。 (这大部分是在2020年6月左右完成的。)

在互联网上进行的常规搜索使我找到了The Practical Developer。当与他联系时,他通过电子邮件给我写信说,他没有定期进行原型设计,因此宁愿拒绝在该项目上进行合作。

由于网上搜索没有发现其他有用的结果,并且由于我没有找到适合自己需求的专门搜索工具,因此我实现了一个简单的原型浏览器。它列出了Maven Central中可用的所有原型。手动审核的内容太多了,因此,我选择了groupId和artifactId至少存在三年并在去年进行了更新的对象,以期找到长期维护的项目,我想表明更可能是一个高质量的项目。 (当然,此过滤器可能错过了与既定目标完全匹配的高质量原型;我没有办法知道。作为一个例子,由于我随着时间的推移更改了其artifactId,因此这种原型无法通过该过滤器。) / p>

然后我根据在其POM中找到的原型描述手动过滤了结果列表,并进一步查看了(通常在官方网站上)其中的一些有希望的原型。只有com.github.ngeor:archetype-quickstart-jdk8被证明是合适的候选人。但是它的作者给我写信说,“这些天他并没有真正使用/维护原型”。