간단한 자바 프로젝트를 위해 선택할 아키 타입


89

mvn archetype : generate는 너무 많은 옵션을 제공하며 junit 테스트 케이스로 간단한 Java 유틸리티를 만들려고합니다. 여기서 어떤 아키타 입을 사용해야하는지 알고 싶습니다.


Maven 시작 가이드 를 읽는 것이 좋습니다 . 짧고 많은 부분을 다룹니다.
사힐 Muthoo

답변:


16

를 수행하면 mvn archetype:generate기본 선택이 중괄호로 묶여 표시됩니다 (). 예를 들어 (1274)위로 스크롤하여 # 1274가 무엇인지 확인하는 경우 간단한 Java 프로젝트를 수행하는 경우 시도하거나 시작하는 것이 일반적으로 기본 Java 아키 타입입니다. 선택해도 안전합니다.


기본값은 이제 333이 아니라 3입니다
TIMP

4
지금입니다380: remote -> org.apache.maven.archetypes:maven-archetype-quickstart (An archetype which contains a sample Maven project.)
slf 2014-04-23

1
그것은 예를 들어,하지 예, 그래서 기본 선택 3. 것을 의미 않습니다 말한다
오 친 보탬이

2
현재 644 org.apache.maven.archetypes:maven-archetype-quickstart:1.1
aliopi 2015 년

현재 874 :)
miku

74

저는 두 가지 원형을 사용합니다. 어떤 종류의 응용 프로그램을 만들 것인지에 따라 다릅니다.

웹 애플리케이션을 원하면 maven-archetype-webapp을 사용하고 간단한 애플리케이션을 원하면 maven-archetype-quickstart를 사용하십시오 . 문제없이 확장 할 수 있기 때문에 유용합니다.


1
이것은 기본적으로 Eclipse 플러그인에 있습니다 (적어도 현재).
Ben

여기서 maven-archetype-webapp을 만들고 maven 카탈로그를 다운로드하지만 오류가 발생합니다.
Mowgli

어떻게해야합니까?
Mowgli

19

다음과 같은 명령을 사용하고 있습니다.

mvn archetype:generate -Dfilter=org.apache.maven.archetypes:

나는 얻을 것이다 짧은 목록 만에서 achetypes의 org.apache.maven.archetypes의 groupId를. 있다 시작하는 좋은 사람 maven-archetype-quickstartmaven-archetype-webapp나의 전임자와 같은 고 말했다.



7

나는 당신이 사용해야한다고 생각합니다 maven-archetype-simple

편집하다

maven 문서 에 따르면 :

  • maven-archetype-quickstart 샘플 Maven 프로젝트를 포함하는 아키 타입.
  • maven-archetype-simple 간단한 Maven 프로젝트를 포함하는 아키 타입.

4
내가 볼 수없는 maven-archetype-simple내 이클립스 선택에서,하지만 난 참조 maven-archetype-quickstart. 동일합니까?
huahsin68 2014 년

maven 문서를 참조하는 나중에 편집 한 내용을 살펴보십시오. eclipse 플러그인 관련 : 개인적 pom.xml으로 수동으로 편집 하고 명령 프롬프트에서 명령 줄을 실행 하는 것을 선호 합니다.
AlexR

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


12
이 조언은 장점이있을 수 있지만 질문에 대한 답은 아닙니다. 내가 아는 한 아키 타입의 요점은 개발자를 이런 종류의 상용구에서 구하고 모범 사례를 쉽게 따를 수 있도록하는 것입니다.
Michael Scheper 2014 년

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/

면책 조항 : 저는 해당 블로그의 작성자입니다.


을 얻었 groupId지만 그 이유는 무엇 archetypeGroupId입니까?
lupchiazoem

1
Maven 저장소에서 아키타 입을 찾는 데 사용되며 archetypeArtifactId.
Moisés

0

maven-archetype-quickstart 샘플 Maven 프로젝트를 포함하는 아키 타입. maven-archetype-simple 간단한 Maven 프로젝트를 포함하는 아키 타입.

오류가 발생하면 maven archetype 카탈로그를 eclipse에 추가하여 수정했습니다. 단계는 다음과 같습니다.

Open Window> Preferences> Maven> Archetypes

Add Remote Catalog다음을 클릭 하고 추가하십시오.

카탈로그 파일 : http://repo1.maven.org/maven2/archetype-catalog.xml

설명 : Maven 카탈로그

참고 : 첫 번째 MAVEN 프로젝트를 생성하는 동안 인터넷 연결이 필요합니다.


위의 카탈로그를 다운로드하고 수동으로 설정했지만 나를 위해 작동하지 않았습니다.
Mowgli

0

기본 아키 타입 번호는 이제 1092 1092입니다. remote-> org.apache.maven.archetypes : maven-archetype-quickstart (샘플 Maven 프로젝트를 포함하는 아키 타입)


0

Java Archetype 을 고려할 수 있습니다 . 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 Cookbook에서 언급)은 maven-archetype-quickstart 또는 org.apache.maven.archetypes : maven-archetype-quickstart입니다.

IMHO는 몇 가지 약점이 있기 때문에 더 이상 사용되지 않는 것으로 간주되어야합니다.

  • 중요한 문제는 JUnit 4에 의존하는 프로젝트를 생성한다는 것입니다. 현재 버전 인 JUnit 5는 크게 다르며 개선 된 API를 제공합니다.
  • 사소한 약점 : 기본 버전은 1.0-SNAPSHOT이며 권장되고 일반적인 체계를 따르려면 1.0.0-SNAPSHOT이어야합니다.
  • 또 다른 약점 : 1.7 JVM 용으로 구성된 프로젝트를 생성합니다. 특히 이전 설치를 지원해야하는 경우 적절할 수 있지만 합리적으로 최신 JVM을 선택하는 것이 새 프로젝트에 대한 더 합리적인 기본 규칙입니다. 예를 들어, Java 8은 람다 식을 도입했는데, 놓치고 싶지 않을 것입니다.

내 아키타 입은 또한 기본적으로 로깅을 제공하는데, 이는 유용하다고 생각하고 sysout보다 더 잘 확장되고 손상되지 않으며 Java를 유용하게 강화한다고 생각하는 Guava입니다.

Maven Central의 다른 빠른 시작 아키 타입

가능한 한 노력에 동참하고 낭비되는 중복을 피하기 위해 저는 저와 같은 목적을 가진 다른 아키타 입을 적극적으로 검색했습니다. 현대 자바 프로젝트를 쉽게 시작할 수 있도록 합리적인 기본값을 가진 간단한 아키타 입을 제공하는 것입니다. (대부분 2020 년 6 월경에 이루어졌습니다.)

인터넷에서 일반적인 검색을 통해 The Practical Developer를 찾았습니다. 연락을 받았을 때 그는 자신의 원형에 대해 정기적으로 작업하지 않기 때문에 그러한 프로젝트에 대한 공동 작업을 거부하는 것을 선호한다고 (이메일로) 저에게 편지를 보냈습니다.

인터넷에서 검색해도 다른 유용한 결과가 나오지 않았고 내 필요에 맞는 전문 검색 도구를 찾지 못해 간단한 원형 브라우저를 구현했습니다. Maven Central에서 사용할 수있는 모든 아키타 입을 나열합니다. 수동으로 검토하기에는 너무 많은 것이 너무 많아서 적어도 3 년 이상 존재하고 작년에 업데이트 된 groupId와 artifactId를 장기적으로 유지되는 프로젝트를 찾기 위해 선택했습니다. 아마도 좋은 품질의 프로젝트 일 것입니다. (물론이 필터는 명시된 목표와 완벽하게 일치하는 양질의 아키타 입을 놓쳤을 수 있습니다. 알 방법이 없습니다. 예를 들어이 아키타 입은 시간이 지남에 따라 artifactId를 변경했기 때문에 해당 필터를 통과하지 못합니다.)

그런 다음 POM에서 찾은 아키 타입 설명을 기반으로 결과 목록을 수동으로 필터링하고 그중 몇 가지 유망한 아키타 입을 더 자세히 살펴 보았습니다 (일반적으로 공식 웹 사이트에서). com.github.ngeor:archetype-quickstart-jdk8적합한 후보 로만 밝혀졌습니다. 그러나 그 저자는 그가 "요즘별로 원형을 사용 / 유지하지 않는다"고 썼다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.