Java 코드에서 pom.xml을 읽으 려합니다. 라이브러리가 있는지 궁금해합니다. 따라서 다른 섹션 (예 : dependenes, plugins 등)에 대한 반복자를 사용할 수 있습니다. 손으로 파서를 작성하지 않으려합니다.maven2/3 pom xml 파일을 읽을 수있는 라이브러리가 있습니까?
답변
MavenXpp3Reader은 maven-model의 일부입니다. 샘플 코드 : 거기에 사용할 수있는 API를 사용하여 그것을 달성하는 쉬운 방법이 있기 때문에
MavenXpp3Reader reader = new MavenXpp3Reader();
Model model = reader.read(new FileReader(mypom));
는 첫째, 나는 이미 Maven 플러그인 내에서 실행되지 않습니다 있으리라 믿고있어.
이전에 게시 된 MavenXpp3Reader
솔루션을 사용하면 POM을 쉽게 읽을 수 있지만 부모의 상속과 표현식 보간은 고려하지 않습니다.
그 때문에 ModelBuilder 클래스를 사용해야합니다. 이것의
사용 Archiva에서 예를 들어,이 코드 조각은 매우 간단하다
ModelBuildingRequest req = new DefaultModelBuildingRequest();
req.setProcessPlugins(false);
req.setPomFile(file);
req.setModelResolver(new RepositoryModelResolver(basedir, pathTranslator));
req.setValidationLevel(ModelBuildingRequest.VALIDATION_LEVEL_MINIMAL);
Model model;
try
{
model = builder.build(req).getEffectiveModel();
}
catch (ModelBuildingException e)
{
...
}
이 있지만 실행하는 두 가지 작업을 수행해야합니다
- 인스턴스화 및 와이어
ModelBuilder
의 인스턴스를 비공개 필드를 포함한 - 상위 POM을 찾는 데 Maven의 확인자 중 하나를 사용하거나 직접 작성하십시오 (위의 스 니펫 에서처럼)
가장 좋은 방법은 이미 사용중인 DI 프레임 워크 또는 Maven의 기본 컨테이너를 포함할지 여부에 따라 다릅니다.
이것은 달성하려는 목표에 따라 다릅니다. XML 파일이 포함 된 XML로 처리하려는 경우 이미 제안 된 제안 사항을 따르십시오.
일부 형식의 Maven 기능을 앱에 구현하려는 경우 새로운 aether 라이브러리를 사용해 볼 수 있습니다. 필자는 사용하지 않았지만, 통합하기에 충분히 단순 해 보이고 사용자가 적은 노력으로 Maven 기능을 제공해야합니다.
현재이 라이브러리는 Maven 2가 아니라 Maven 3 라이브러리입니다 (태그에 지정된대로). 그게 너에게 큰 차이가 있는지 모르겠다.
aether로 플러그인 구성을 읽을 수 있습니까? –
와우, 좀비 주제. 어쨌든, 내가 말했듯이, 당신이하려는 일에 달려 있습니다. 외부에서 maven에 대한 설정을 구문 분석하는 경우 일반 XML 파서를 사용합니다. 만약 당신이 플러그인을 쓰고 있다면, 나는 할 수 있다고 생각 하겠지만, 더 새로운 라이브러리를 사용할 수있을 것이다. (나는 지금 Maven 개발자를 벗어났다.) 일부 플러그인 문서 (http://maven.apache.org/plugin-developers/ PS)를 볼 수 있습니다. 나는 aether에 대한 링크가 더 이상 작동하지 않는 새로운 링크를 발견했습니다 - http://www.eclipse.org/aether/ – GKelly
- 1. Windows 폴더의 thumb.db에서 축소판을 읽을 수있는 C++ 라이브러리가 있습니까?
- 2. 파일에서 이름/값 쌍을 읽을 수있는 광범위한 C 라이브러리가 있습니까?
- 3. /var/spool/mail/files을 읽을 수있는 라이브러리가 있습니까?
- 4. 간단한 xml 파일을 읽을 수있는 형식으로 구문 분석하는 방법
- 5. XML 파일이 불어로 된 XML 파일을 읽을 때 데이터 세트로 XML 파일을 읽을 수 없습니다.
- 6. 읽을 수있는 Tao.FFMPEG가 있습니까?
- 7. Maven POM 파일을 분할 할 수 있습니까?
- 8. 파일을 읽을 수 있습니까?
- 9. Scala에서 사람이 읽을 수있는 XML 출력?
- 10. 어떻게 돌려 읽을 수있는 XML 값은
- 11. XML 파일을 쿼리 할 수있는 GUI가 있습니까?
- 12. PDF 파일을 읽을 수있는 무료 라이브러리
- 13. PNG 파일을 PDF로 변환 할 수있는 .NET 라이브러리가 있습니까?
- 14. .MSG 파일을 구문 분석 할 수있는 무료 라이브러리가 있습니까?
- 15. PHP와 함께 RFC 4180 CSV 파일을 쓸 수있는 라이브러리가 있습니까?
- 16. 자바 스크립트에서 xml 파일을 읽을 수 있습니다.
- 17. xml 파일을 읽을 창 서비스를 만드는 방법
- 18. 사람이 읽을 수있는 파일을 저장하는 방법
- 19. 다른 앱의 SandBox에있는 파일을 읽을 수있는 iBooks
- 20. 기계가 읽을 수있는 진행 출력으로 파일을 다운로드하십시오.
- 21. C에서 ELF 파일을 읽을 수있는 적절한 방법
- 22. htaccess로 xml 파일을 읽을 수 없습니다 (플래시 기반 xml 갤러리)
- 23. vb.Net : 큰 XML 파일을 어떻게 빨리 읽을 수 있습니까?
- 24. 누구나 .ARC 파일을 읽을 수있는 "작동하는"Python 라이브러리를 알고 있습니까?
- 25. 거기에 파일을 구문 분석하거나 디렉토리를 읽을 수있는 방법이 있습니까?
- 26. Perl에서 MATLAB의 .mat 파일을 읽을 수있는 방법이 있습니까?
- 27. jquery : 호스트 디렉토리에서 모든 파일을 읽을 수있는 방법이 있습니까?
- 28. JPEG 파일을 읽을 수있는 ImageIO 대신 Java가 100 % 있습니까?
- 29. 파일을 다운로드하지 않고 헤더 코드를 읽을 수있는 방법이 있습니까?
- 30. 어디서 파일을 읽을 수 있습니까?
내가 아는 한, 이것은 Maven 3 방법이다. Maven 2.2.x 접근 방식은 무엇입니까? 미리 감사드립니다. – carlspring
라이브러리가 호환되므로 임베딩을 위해 maven 3 라이브러리를 사용하는 것이 좋습니다. Maven 2 라이브러리를 실제로 사용해야하는 경우 여기에서 예제를 찾을 수 있습니다. https://github.com/brettporter/centrepoint/blob/master/centrepoint/modules/maven-importer/src/main/java/com/ effectivemaven/centrepoint/maven/repository/CentralRepositoryService.java –
그 해명을 가져 주셔서 감사합니다! 매우 감사! – carlspring