2017-10-24 2 views
0

JBoss 및 WildFly에서 BOM 사용에 대한 일반적인 질문이 있습니다. 다른 프로필을 사용하여 JBoss 7 및 WildFly 10 용 프로젝트를 빌드하는 방법입니까? 프로필에 다른 JBoss BOM 사용

는이 같은 프로필로 제이보스에서 BOM 정의를 복사하려고 : accourdingly JBoss7 프로파일 물론

<profile> 
    <id>WildFly10</id> 
    <dependencyManagement> 
     <dependencies>   
      <dependency> 
       <groupId>org.wildfly.bom</groupId> 
       <artifactId>wildfly-javaee7-with-tools</artifactId> 
       <version>${version.jboss.bom}</version> 
       <type>pom</type> 
       <scope>import</scope> 
      </dependency> 
      <!-- JSON --> 
      <dependency> 
       <groupId>org.json</groupId> 
       <artifactId>json</artifactId> 
       <version>${version.json}</version> 
      </dependency> 
     </dependencies> 
    </dependencyManagement> 
</profile> 

.

그러나 이렇게하면 lib 폴더에 중요한 라이브러리가 추가되지 않습니다. 즉,이 정의는 ear pom에 있고 하위 프로젝트 (war)는 json 종속성을 추가합니다. 프로파일이 없다면 maven은 lib 폴더 안에 json jar 파일을 추가합니다. 프로파일 안에 넣으면 안됩니다.

는 후에 나는 프로필에 종속성을 변경하는 안티 패턴이 [1] 내가 JBoss7 및 제이보스 모두 내 프로젝트를 빌드 할 수있는 방법

(10)

업데이트를 알고 싶은 것을 읽을 수 죄송합니다. 신속한 질문을 보내 주셔서 감사합니다. 자세한 내용은 다음과 같습니다.

프로젝트 구조 :

|-parent (pom) 
    |- myapp (war) 
    |- core (jar) 
    |- deployment (ear) 

그래서 deployment 라이브러리와 같은 웹 apllication로 myappcore를 포함하는 전체 귀를 구축하는 프로젝트입니다. myappcorecore ~ json에 대한 종속성을가집니다.

올바른 버전으로 필요한 모든 종속성을 갖기 위해 dependencyManagment에 wildfly-javaee7-with-tools을 포함 시켰습니다. 거기에 정의 된 버전은 json입니다. core 프로젝트에는 보통 종속성으로 json 라이브러리가 있습니다.

이 시점에서 이것은 아주 표준이어야합니다. 그러나 것은 나는 물론 ${version.jboss.bom}

  <dependency> 
       <groupId>org.jboss.bom</groupId> 
       <artifactId>jboss-javaee-6.0-with-tools</artifactId> 
       <version>${version.jboss.bom}</version> 
       <type>pom</type> 
       <scope>import</scope> 
      </dependency> 

가 제이보스에 대한 10.1.0.Final에서 변경됩니다

  <dependency> 
       <groupId>org.wildfly.bom</groupId> 
       <artifactId>wildfly-javaee7-with-tools</artifactId> 
       <version>${version.jboss.bom}</version> 
       <type>pom</type> 
       <scope>import</scope> 
      </dependency> 

에 변경해야 할 것에 대해, 제이보스 (7) 및 제이보스 (10)에 대한 구축 할 수 있도록하려는 것입니다 JBoss 용 1.0.7.Final.

이렇게하려면 wildfly-javaee7-with-tools을 프로필로 이동하려했습니다. 내 첫 번째 추측은이 종속성을 프로필로 이동하는 것뿐이었습니다. 그러나 json 항아리는 포함되지 않습니다. 그 후 나는 또한 위와 같이 json을 움직이려고했다.

+0

죄송합니다. 주제 밖에서이 물건을 연결 하시겠습니까? _changing dependencie는 프로필에 anti-pattern입니까? 그리고 비 프로파일 pom에서 관련 부분을 포함하도록 질문에 편집하거나 해당 pom/import 종속성 만 있습니까? – pirho

+0

"프로파일이 없으면 maven은 lib 폴더 안에 json jar를 추가합니다."- 이것에 대해 pom을 표시 할 수 있습니까? – SilverNak

+0

사실이 pom에는 특별한 것이 없습니다. 그것은 단지 몇 가지 의존성을 가지고 있습니다. 그 중 하나는 JSON 종속성이있는 다른 하위 프로젝트 (jar)입니다. 프로필이 전혀 없으면 JSON jar가 추가되지만, 프로필에 포함 시키면 포함되지 않습니다. –

답변

0

전체적으로 원래의 프로필이 작성되지 않은 프로필 링을 보지 않고도 정확한 내용을 말할 수는 없습니다.

프로필 종속성 관리에 json이 있습니다.

버전이없는 pom s의 주요 종속성에도 있습니까? 그렇지 않으면 lib에 복사되거나 packed되지 않습니다. 프로필 <dependencyManagement>에 의해서만 관리됩니다.

프로필 당 json이 필요합니까? ${version.json}이있는 것 같습니다. 예를 들어 복사하면 각 프로필에 대해 동일하게됩니다.

제게는 json을 프로필 dependencyManagement에서 제거하고 기본 종속성으로 기본 종속성에 추가하는 것으로 보입니다. 프로필 링을 더 간단하게 만들기 위해 관리 할 수 ​​있지만 필요하지 않은 경우에는 버전을 설정하십시오. json 직접 종속성.

관련 문제