나는 이것이 Maven 모범 사례에 위배된다는 것을 알고 있지만 규칙의 몇 가지 예외 중 하나 일 가능성이 있습니다. - 적어도 대안에 대해 고민하고 있습니다. (하나의 소스에서 여러 Maven 아티팩트를 생성하는 방법
환경은 이것이다 :
- 우리는
- 우리는 우리가 플래시를 생성하는 기존의 인터페이스를 기반으로 새로운 프론트 엔드
- 으로 플래시를 사용하려면 외부 세계에 독점 기술 기반 인터페이스와 기존 응용 프로그램이 cl 엉덩이와 플래시 SWC에서 그들을 패키지는
- 가 더 어렵게되는 다리 레거시 인터페이스로 플래시 서비스 요청을 (블레이즈 DS를 통해 오는) 우리는 자바 클래스를 생성
- 레거시 인터페이스를 기반으로 프론트 엔드 개발자에 의해 사용되는 , 우리는 수십 개의 인터페이스 (인터페이스)를 가지고 있기 때문에 각 인터페이스에 대해 자체적으로 POM을 사용하고 싶지는 않으며 사용하지 못하도록하고 싶습니다. 그리고 그것들은 그들의 artifactId 만 다를 것입니다. 대신 각 빌드에 대해 매개 변수화 된 "일반"프로젝트 구조를 사용합니다 (젠킨스). 프로젝트는 만 완전 자동화 된 환경에서 사용됩니다.
먼저이 모든 것을 하나의 "간단한"프로젝트에 넣으려고했습니다.이 프로젝트는 아티팩트가 설치되어야하는 지점까지 작동합니다. 나는 "자바"& "에서 참조를 가지고,
GenericProject
|
+-- GenerateSources from legacy interface
| +-- pom.xml
|
+-- Java
| +-- pom.xml
|
+-- SWC
| +-- pom.xml
|
+-- pom.xml
이러한 접근 방식은 단점이있다 :
내 현재의 접근 방식은 그 자체에 대한 몇 가지 단점이 있습니다 받는다는 참조 13 장, 영감 멀티 모듈 프로젝트 구조 SWC "를 추악하지만 견딜 수있는"GenerateSource "의 내부 구조에 적용합니다.
실제적으로 내 방식이인데, 전체 프로세스를 트리거 한 레거시 인터페이스 인 & 버전의 아티팩트를 얻기 위해 배포 플러그인 &을 크게 조정해야한다는 것입니다. 나는 지금 달리고있다, 그러나 아주 부서지기 위하여 본다.
- GenerateSources & SWC
을하지만 이것은 단지 상호 참조와 함께 약간의 두통을 해결합니다 :
나는이 개 간단한 프로젝트에서 프로젝트를 복제/분할 고려 .아론 (Aaron)은 자신의 의견에서 지적했듯이, 나는 그 문제를 분명히 말하고있다.좀 더 실험 후 이 나에게 많은 명확 가지고 : 은 기본적으로 내가/설치
- 를 해결
- 이름
project.artifactId
전체 프로세스를 개선하는 제안 사항이 있습니까?
미리 감사드립니다.
질문을 더 간단하고 구체적인 것으로 분리해야한다고 생각합니다. 지금 당장 당신 문제가 뭔지 모르겠습니다. 빌드하는 동안 더 많은 아티팩트를 생성 할 수있는 JAR 플러그인에 대해 알고 있습니까? 최종 산출물의 이름을 지정하는 옵션에 대해 알고 있습니까? "내부 구조에 대한 언급"이란 정확히 무엇을 의미합니까? –
안녕하세요 아론, 내 단일 프로젝트 접근 방식에서 "$ {Interface-Name} - $ {Interface-Verion}"project.build.finalName 및 – Thomas
[soory, wong key]로 이미 설정했습니다. . .JAR 플러그인에 의해 "Interface-Name-Interface-Version.jar"을 얻을 수있게되었습니다. 그러나 플러그인을 설치하고 배포하는 데에는 목적에 따라 project.artifactId를 사용해야합니다. 또한 스냅 샷과 릴리스 간의 차이점은 $ {Interface-Version} 대신 project.version을 기반으로합니다. – Thomas