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
저는 두 가지 원형을 사용합니다. 어떤 종류의 응용 프로그램을 만들 것인지에 따라 다릅니다.
웹 애플리케이션을 원하면 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
내 이클립스 선택에서,하지만 난 참조 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 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/
면책 조항 : 저는 해당 블로그의 작성자입니다.
groupId
지만 그 이유는 무엇 archetypeGroupId
입니까?
archetypeArtifactId
.
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 프로젝트를 생성하는 동안 인터넷 연결이 필요합니다.
기본 아키 타입 번호는 이제 1092 1092입니다. remote-> org.apache.maven.archetypes : maven-archetype-quickstart (샘플 Maven 프로젝트를 포함하는 아키 타입)
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는 몇 가지 약점이 있기 때문에 더 이상 사용되지 않는 것으로 간주되어야합니다.
내 아키타 입은 또한 기본적으로 로깅을 제공하는데, 이는 유용하다고 생각하고 sysout보다 더 잘 확장되고 손상되지 않으며 Java를 유용하게 강화한다고 생각하는 Guava입니다.
Maven Central의 다른 빠른 시작 아키 타입
가능한 한 노력에 동참하고 낭비되는 중복을 피하기 위해 저는 저와 같은 목적을 가진 다른 아키타 입을 적극적으로 검색했습니다. 현대 자바 프로젝트를 쉽게 시작할 수 있도록 합리적인 기본값을 가진 간단한 아키타 입을 제공하는 것입니다. (대부분 2020 년 6 월경에 이루어졌습니다.)
인터넷에서 일반적인 검색을 통해 The Practical Developer를 찾았습니다. 연락을 받았을 때 그는 자신의 원형에 대해 정기적으로 작업하지 않기 때문에 그러한 프로젝트에 대한 공동 작업을 거부하는 것을 선호한다고 (이메일로) 저에게 편지를 보냈습니다.
인터넷에서 검색해도 다른 유용한 결과가 나오지 않았고 내 필요에 맞는 전문 검색 도구를 찾지 못해 간단한 원형 브라우저를 구현했습니다. Maven Central에서 사용할 수있는 모든 아키타 입을 나열합니다. 수동으로 검토하기에는 너무 많은 것이 너무 많아서 적어도 3 년 이상 존재하고 작년에 업데이트 된 groupId와 artifactId를 장기적으로 유지되는 프로젝트를 찾기 위해 선택했습니다. 아마도 좋은 품질의 프로젝트 일 것입니다. (물론이 필터는 명시된 목표와 완벽하게 일치하는 양질의 아키타 입을 놓쳤을 수 있습니다. 알 방법이 없습니다. 예를 들어이 아키타 입은 시간이 지남에 따라 artifactId를 변경했기 때문에 해당 필터를 통과하지 못합니다.)
그런 다음 POM에서 찾은 아키 타입 설명을 기반으로 결과 목록을 수동으로 필터링하고 그중 몇 가지 유망한 아키타 입을 더 자세히 살펴 보았습니다 (일반적으로 공식 웹 사이트에서). com.github.ngeor:archetype-quickstart-jdk8
적합한 후보 로만 밝혀졌습니다. 그러나 그 저자는 그가 "요즘별로 원형을 사용 / 유지하지 않는다"고 썼다.