programing

프로젝트를 다른 프로젝트의 종속성으로 추가하려면 어떻게합니까?

nasanasas 2020. 11. 12. 08:21
반응형

프로젝트를 다른 프로젝트의 종속성으로 추가하려면 어떻게합니까?


두 개의 독립적 인 프로젝트 ( myWarProjectMyEjbProject)가 있습니다. 그래서 빌드 할 때를 로컬 저장소에 myWarProject설치해야 MyEjbProject하므로 myWarProject에서 종속성으로 정의하고 myWarProject를 성공적으로 패키징 할 수 있습니다.

MyEjbProject별도로 설치 하지 않고 부모 모듈로 정의하지 않고 이것을 처리하는 방법이 있습니까?

나는 이것이 개미 빌드를 통해 달성 될 수 있다는 것을 알고 있지만 maven을 통해 처리하는 방법이 있는지 궁금합니다.

"pom"으로 부모 프로젝트를 만들고 다른 두 프로젝트를 부모 프로젝트 아래로 이동할 수 있습니다. 그러나 불행히도 현재 우리는 이미 구조를 변경할 수없는 CVS에 별도의 프로젝트로 두 개를 가지고 있기 때문에 이것을 할 수 없습니다. pom 파일을 통해 이것을 처리 할 수 ​​있다면 이것이 제가 찾고있는 것입니다.


MyEjbProject가 소유하거나 maven으로 빌드하려는 다른 Maven 프로젝트가 아니라고 가정하면 시스템 종속성을 사용하여 프로젝트의 기존 jar 파일에 연결할 수 있습니다.

<project>
   ...
   <dependencies>
      <dependency>
         <groupId>yourgroup</groupId>
         <artifactId>myejbproject</artifactId>
         <version>2.0</version>
         <scope>system</scope>
         <systemPath>path/to/myejbproject.jar</systemPath>
      </dependency>
   </dependencies>
   ...
</project>

즉, 일반적으로 패키지를 메이븐 프로젝트로 만들고 빌드하거나 이미 수행 한 것처럼 설치하여 저장소에 패키지를 설치하는 것이 더 좋습니다 (그리고 선호되는 방법).


그러나 서로 종속되어있는 경우 다른 두 프로젝트를 "모듈"로 선언하는 별도의 상위 프로젝트 ( "pom"프로젝트 여야 함)를 항상 만들 수 있습니다. (하위 프로젝트는 세 번째 프로젝트를 부모로 선언 할 필요가 없습니다). 결과적으로 새 상위 프로젝트를위한 새 디렉토리를 얻게되며, 여기에 다음과 같이 두 개의 독립 프로젝트를 넣을 수도 있습니다.

parent
|- pom.xml
|- MyEJBProject
|   `- pom.xml
`- MyWarProject
    `- pom.xml

상위 프로젝트는 모든 하위 모듈의 이름을 지정하는 "모듈"섹션을 가져옵니다. 그런 다음 애그리 게이터는 하위 모듈의 종속성을 사용하여 실제로 프로젝트가 빌드 될 순서를 찾습니다.)

<project>
   ...
   <artifactId>myparentproject</artifactId>
   <groupId>...</groupId>
   <version>...</version>

   <packaging>pom</packaging>
   ...
   <modules>
     <module>MyEJBModule</module>
     <module>MyWarModule</module>
   </modules>
   ...
</project>

이렇게하면 프로젝트가 서로 관련 될 수 있지만 (로컬 저장소에 설치되면) 여전히 다른 프로젝트의 아티팩트로 독립적으로 사용됩니다.


Finally, if your projects are not in related directories, you might try to give them as relative modules:

filesystem
 |- mywarproject
 |   `pom.xml
 |- myejbproject
 |   `pom.xml
 `- parent
     `pom.xml

now you could just do this (worked in maven 2, just tried it):

<!--parent-->
<project>
  <modules>
    <module>../mywarproject</module>
    <module>../myejbproject</module>
  </modules>
</project>

참고URL : https://stackoverflow.com/questions/15383322/how-do-i-add-a-project-as-a-dependency-of-another-project

반응형